Puede hacerlo con expresiones regulares que no contienen una palabra. Además, puede utilizar $options => i
para el caso de búsqueda insensible.
No contiene string
db.collection.find({name:{'$regex' : '^((?!string).)*$', '$options' : 'i'}})
No distingue entre mayúsculas y minúsculas string
db.collection.find({name:{'$regex' : '^string$', '$options' : 'i'}})
Comienza con string
db.collection.find({name:{'$regex' : '^string', '$options' : 'i'}})
Termina con string
db.collection.find({name:{'$regex' : 'string$', '$options' : 'i'}})
Contiene string
db.collection.find({name:{'$regex' : 'string', '$options' : 'i'}})
Conserve esto como un marcador y una referencia para cualquier otra modificación que pueda necesitar.
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
$not
y$regex
en combinación parece funcionar para mí.