Definición
Novedad 8.2 en la versión.:
Nota
El operador de agregación $encStrContains 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.
$encStrContainsDevuelve
truesi un subconjunto de caracteres en un valor de string coincide con los caracteres en la string especificada. El campo consultado debe tener activada la opción de consultas de subcadenas, y la longitud del string del query debe estar entre el mínimo y máximo número de caracteres configurados, inclusive.Por defecto, las cadenas deben coincidir en mayúsculas y minúsculas y en acentos diacríticos.
Establecer
caseSensitiveenfalseen el esquema de cifrado para la armonización sin distinguir entre mayúsculas y minúsculas.Establece
diacriticSensitiveenfalseen el esquema de cifrado para desestimar las variaciones diacríticas al hacer coincidir.
La expresión
$encStrContainstiene la siguiente sintaxis de expresión de operador:{ $encStrContains: { input: ’$fieldname’, substring: <target search key> } }
Comportamiento
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
En mongosh:
db.collection('MyCollection').aggregate([ { $match: { $expr: { $encStrContains: { input: '$employeeLastName', substring: 'earso' } } } } ])
Para hacer coincidir múltiples campos:
db.collection('MyCollection').aggregate([ { $match: { $expr: { $and: [ { $encStrContains: { input: '$employeeLastName', substring: 'earso' } }, { $encStrContains: { input: '$employeeFirstName', substring: 'John' } } ] } } } ])