Puoi farlo con regex che non contiene una parola. Inoltre, puoi usare $options => i
per maiuscole e minuscole ricerca insensibile.
Non contiene string
db.collection.find({name:{'$regex' : '^((?!string).)*$', '$options' : 'i'}})
Senza distinzione tra maiuscole e minuscole string
db.collection.find({name:{'$regex' : '^string$', '$options' : 'i'}})
Inizia con string
db.collection.find({name:{'$regex' : '^string', '$options' : 'i'}})
Finisce con string
db.collection.find({name:{'$regex' : 'string$', '$options' : 'i'}})
Contiene string
db.collection.find({name:{'$regex' : 'string', '$options' : 'i'}})
Conserva questo come segnalibro e un riferimento per qualsiasi altra modifica di cui potresti aver bisogno.
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
$not
e$regex
in combinazione sembra funzionare per me.