Definición
Nuevo en la versión 8.2.
Nota
El $encStrNormalizedEq El operador de agregación solo se utiliza para campos cifrados en colecciones con Cifrado consultable habilitado. Para campos sin cifrar, utilice operadores de búsqueda de texto para encontrar subcadenas.
$encStrNormalizedEqDevuelve
truesi un valor de cadena normalizada coincide con la versión de cadena normalizada de la cadena especificada. El campo consultado debe tener habilitadas las consultas de subcadenas y la longitud de la cadena de consulta debe estar entre el mínimo y el máximo de caracteres configurados, ambos inclusive.Nota
Este operador debe operar sobre un índice de búsqueda de texto.
La expresión
$encStrNormalizedEqtiene la siguiente sintaxis de expresión de operador:{ $encStrNormalizedEq: { input: ’$fieldname’, string: <target search key> } }
Comportamiento
La distinción entre mayúsculas y minúsculas y la sensibilidad a los signos diacríticos están determinadas por la configuración del índice de búsqueda de texto asociado.
Las búsquedas coinciden con caracteres de espacio en blanco.
Los saltos de línea no se tienen en cuenta al realizar la coincidencia.
No se admiten delimitadores de tokenización.
Ejemplo
Considera el carácter é, que puede representarse de dos formas:
Un punto de código,
U+00E9(letra latina E minúscula con acento agudo)Dos puntos de código,
U+0065(letra latina E minúscula) seguido deU+0301(acento agudo combinado)
Al comparar estas dos representaciones diferentes del nombre Béatrice:
El uso de
$eqevalúa,falseporque las representaciones binarias son diferentes.Usar
$encStrNormalizedEqevalúa entrue, independientemente de la configuración dediacriticSensitive, porque el operador normaliza ambas cadenas antes de compararlas.
En:mongosh
db.collection('MyCollection').aggregate([ { $match: { $expr: { $encStrNormalizedEq: { input: '$employeeLastName', string: 'Béatrice' } } } } ])