Definición
$strLenCPDevuelve el número de8 puntos de código UTF- en la cadena especificada.
$strLenCPtiene lo siguiente Sintaxis de expresión del operador:{ $strLenCP: <string expression> } El argumento puede ser cualquier expresión válida que se resuelva como string.
Si el argumento se resuelve en un valor de
nullo hace referencia a un campo faltante, devuelve un$strLenCPerror.EjemploResultados{ $strLenCP: "abcde" }5{ $strLenCP: "Hello World!" }12{ $strLenCP: "cafeteria" }9{ $strLenCP: "cafétéria" }9{ $strLenCP: "" }0{ $strLenCP: "$€λA" }4{ $strLenCP: "寿司" }2
Comportamiento
El operador cuenta el número de puntos de $strLenCP $strLenBytes código en la cadena especificada. Este comportamiento difiere del operador, que cuenta el número de bytes de la cadena, donde cada carácter ocupa entre uno y cuatro bytes.
Ejemplo
Conjunto de caracteres de un solo byte y multibyte
Cree una colección food:
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: "寿司" } ] )
El siguiente ejemplo utiliza el operador $strLenCP para calcular el length de cada valor name:
db.food.aggregate( [ { $project: { name: 1, length: { $strLenCP: "$name" } } } ] )
Ejemplo de salida:
[ { _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 } ]