$strLenCP (aggregation)
On this page
This version of the documentation is archived and no longer supported. View the current documentation to learn how to upgrade your version of MongoDB server.
Definition
$strLenCP
Returns the number of UTF-8 code points in the specified string.
$strLenCP
has the following operator expression syntax:{ $strLenCP: <string expression> } The argument can be any valid expression that resolves to a string.
If the argument resolves to a value of
null
or refers to a missing field,$strLenCP
returns an error.ExampleResults{ $strLenCP: "abcde" }
5
{ $strLenCP: "Hello World!" }
12
{ $strLenCP: "cafeteria" }
9
{ $strLenCP: "cafétéria" }
9
{ $strLenCP: "" }
0
{ $strLenCP: "$€λA" }
4
{ $strLenCP: "寿司" }
2
Behavior
The $strLenCP
operator counts the number of code points
in the specified string. This behavior differs from the
$strLenBytes
operator that counts the number of bytes in
the string, where each character uses between one and four bytes.
Example
Single-Byte and Multibyte Character Set
Create a food
collection:
db.food.insertMany( [ { _id: 1, name: "apple" }, { _id: 2, name: "banana" }, { _id: 3, name: "éclair" }, { _id: 4, name: "hamburger" }, { _id: 5, name: "jalapeño" }, { _id: 6, name: "pizza" }, { _id: 7, name: "tacos" }, { _id: 8, name: "寿司" } ] )
The following example uses the $strLenCP
operator to calculate
the length
of each name
value:
db.food.aggregate( [ { $project: { name: 1, length: { $strLenCP: "$name" } } } ] )
Example output:
[ { _id: 1, name: 'apple', length: 5 }, { _id: 2, name: 'banana', length: 6 }, { _id: 3, name: 'éclair', length: 6 }, { _id: 4, name: 'hamburger', length: 9 }, { _id: 5, name: 'jalapeño', length: 8 }, { _id: 6, name: 'pizza', length: 5 }, { _id: 7, name: 'tacos', length: 5 }, { _id: 8, name: '寿司', length: 2 } ]