Definición
Nuevo en la versión 8.2.
Nota
La $encStrNormalizedEq el operador de agregación es solo para campos cifrados en colecciones con Queryable Encryption enabled. Para campos no cifrados, usa operadores Text búsqueda 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 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 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' } } } } ])