varios relacionar regulares objects insertar insensitive expresiones documentos consultas complejas colecciones array regex mongodb mongodb-query pymongo sql-like

relacionar - regex mongodb



¿Cómo puedo usar el operador ''No me gusta'' en MongoDB (2)

De los docs :

El operador $ not no admite operaciones con el operador $ regex. En su lugar use // o en las interfaces de su controlador, use la capacidad de expresión regular de su idioma para crear objetos de expresiones regulares. Considere el siguiente ejemplo que usa la expresión de coincidencia de patrón //:

db.inventory.find( { item: { $not: /^p.*/ } } )

EDITAR (@idbentley):

{$regex: ''ttt''} generalmente es equivalente a /ttt/ en mongodb, por lo que su consulta se convertiría en db.test.find({c: {$not: /ttt/}}

EDIT2 (@KyungHoon Kim):

En python, esto funciona: ''c'':{''$not'':re.compile(''ttt'')}

Utilicé el operador SQL ''Me gusta'' usando Pymongo,

db.test.find({''c'':{''$regex'':''ttt''}})

Pero, ¿cómo puedo usar el operador ''No me gusta''?

Lo intenté

db.test.find({''c'':{''$not'':{''$regex'':''ttt''}})


Puedes hacerlo con expresiones regulares que no contiene palabras. También puede usar $options => i para búsqueda insensible a mayúsculas y minúsculas

No contiene string

db.collection.find({name:{''$regex'' : ''^((?!string).)*$'', ''$options'' : ''i''}})

string exacta insensible a mayúsculas y minúsculas

db.collection.find({name:{''$regex'' : ''^string$'', ''$options'' : ''i''}})

Comience con una string

db.collection.find({name:{''$regex'' : ''^string'', ''$options'' : ''i''}})

Terminar con una string

db.collection.find({name:{''$regex'' : ''string$'', ''$options'' : ''i''}})

Contiene string

db.collection.find({name:{''$regex'' : ''string'', ''$options'' : ''i''}})

Mantenga esto como un marcador y una referencia para cualquier otra alteración que pueda necesitar. http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/