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.Establezca
diacriticSensitiveafalseen el esquema de cifrado para ignorar las variaciones diacríticas al realizar la coincidencia.
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' } } ] } } } ])