Definición
Novedad 8.2 en la versión.:
Nota
El operador de agregación $encStrNormalizedEq es solo para campos cifrados en colecciones con Queryable Encryption habilitado. Para los campos descifrados, utiliza operadores de Búsqueda de Texto para hacer coincidir subcadenas.
$encStrNormalizedEqDevuelve
truesi un valor string normalizado coincide con la versión string normalizada del string especificado. El campo de query debe tener queries de subcadenas habilitadas, y la longitud del string del query debe estar entre el número mínimo y máximo de caracteres configurados, 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 sensibilidad a mayúsculas y minúsculas y la sensibilidad a los signos diacríticos se determinan 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 consideran al hacer coincidencias.
Los delimitadores de tokenización no son compatibles.
Ejemplo
Considera el carácter é, que puede representarse de dos formas:
Un punto de código,
U+00E9(letra e minúscula latina con acento agudo)Dos puntos de código,
U+0065(letra minúscula e latina) seguidos porU+0301(acento agudo combinante)
Al comparar estas dos representaciones diferentes del nombre Béatrice:
El uso de
$eqse evalúa comofalse, porque 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' } } } } ])