本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
$substrCP
Amazon DocumentDB 中的$substrCP运算符用于从字符串中提取子字符串,其中子字符串指定为 UTF-8 码点范围 (CP)。此运算符在处理 Unicode 字符串时特别有用,因为它允许您提取子字符串,而不必担心字符的底层字节表示形式。
与对字节位置进行$substrBytes操作的运算符不同,该$substrCP运算符使用码点位置。这使得处理包含非 ASCII 字符的字符串变得更加容易,因为代码点的数量可能与字节数或字符数不匹配。
参数
-
string:要从中提取子字符串的输入字符串。 -
start:从中提取子字符串的起始码点位置(从零开始)。 -
length:要提取的代码点数。
示例(MongoDB 外壳)
在此示例中,我们将使用$substrCP运算符从包含员工办公桌位置的字符串中提取州缩写。
创建示例文档
db.people.insert([ { "_id": 1, "first_name": "Jane", "last_name": "Doe", "Desk": "12 Main St, Minneapolis, MN 55401" }, { "_id": 2, "first_name": "John", "last_name": "Doe", "Desk": "456 Oak Rd, New Orleans, LA 70032" }, { "_id": 3, "first_name": "Steve", "last_name": "Smith", "Desk": "789 Elm Ln, Bakersfield, CA 93263" } ]);
查询示例
db.people.aggregate([ { $project: { "state": { $substrCP: ["$Desk", 25, 2] } } } ]);
输出
{ "_id" : 1, "state" : "MN" }
{ "_id" : 2, "state" : "LA" }
{ "_id" : 3, "state" : "CA" }
在此示例中,我们知道州缩写从Desk字段的第 25 个代码点开始,长度为 2 个代码点。通过使用$substrCP运算符,我们可以提取状态缩写,而不必担心字符串的底层字节表示形式。
代码示例
要查看使用该$substrCP命令的代码示例,请选择要使用的语言的选项卡: