MongoDB 中的 $substrCP(聚合)运算符
MongoDB 是一个 NOSQL 数据库,它经常被用于所有行业。 MongoDB 的流行在于有效的查询方式,快速检索数据,这有助于通过大数据分析获得更广泛的见解。现在我们将看到 $substrCP(聚合)运算符以及它在项目中的使用效率。
$substrCP运算符:用于从给定字符串查找子字符串。它使用代码点( Unicode代码空间)来提取子字符串。
句法 :
{ $substrCP: [ , , ] }
参数:
- 您的字符串表达式:它是带有字母/字母数字和特殊字符的有效字符串表达式。或者换句话说,它是从中提取子字符串的有效字符串。
- 码点索引:是一个数字(非负整数),表示子串的起始点
- 代码点计数:非负整数(数字),它指定需要从代码点索引中获取的字符数。
例如: { $substrCP: [ “geeksforgeeks”, 0, 5 ] } 将输出为“geeks”,因为 0 被指定为起始位置,从那里需要提取 5 个字符,因此结果为“geeks”
示例 1:
在以下示例中,我们正在使用:
Database: geeksforgeeks
Collection: articles
Documents: three documents that contain the details of the articles in the form of field-value pairs.
使用 $substrCP运算符查找文章的发布月份和发布年份:
现在,通过使用以下查询将“publishedon”列详细信息拆分为“publicationmonth”和“publicationyear”来显示上述文章的输出:
db.articles.aggregate(
[
{
$project: {
articlename: 1,
publicationmonth: { $substrCP: [ "$publishedon", 0, 4 ] },
publicationyear: {
$substrCP: [
"$publishedon", 4, { $subtract: [ { $strLenCP: "$publishedon" }, 4 ] }
]
}
}
}
]
)
这里, “publicationmonth”遵循直接语法,它选择“publishedon”列的前 4 个字符。在“publicationyear”中,取“publishedon”的其余字符。它使用“$subtract” ,它用于通过使用 $strLenCP 从字符串的长度中减去字节索引。
示例 2:
在以下示例中,我们正在使用:
Database: geeksforgeeks
Collection: articles
Documents: three documents that contain the details of the authors in the form of field-value pairs.
使用 $substrCP运算符查找作者的名字和姓氏:
现在,通过使用以下查询将“name”列详细信息拆分为“firstname”和“lastname”来显示上面的作者输出:
db.authors.aggregate(
[
{
$project: {
articlename: 1,
firstname: { $substrCP: [ "$name", 0, 5 ] },
lastname: {
$substrCP: [
"$name", 5, { $subtract: [ { $strLenCP: "$name" }, 3 ] }
]
}
}
}
]
)
这里, “firstname”遵循直接语法,它选择“name”列的前 5 个字符。在“lastname”中,取“name”的其余字符。它使用“$subtract” ,它用于通过使用 $strLenCP 从字符串的长度中减去字节索引。