Definición
Nuevo en la versión 8.2.
Nota
La $encStrContains 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.
$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' } } ] } } } ])