Ви можете обійтися регулярним виразом, який не містить слова. Крім того, ви можете використовувати $options => i
у випадку нечутливого пошуку.
Не містить string
db.collection.find({name:{'$regex' : '^((?!string).)*$', '$options' : 'i'}})
Точний нечутливий регістр string
db.collection.find({name:{'$regex' : '^string$', '$options' : 'i'}})
Починає з string
db.collection.find({name:{'$regex' : '^string', '$options' : 'i'}})
Закінчується на string
db.collection.find({name:{'$regex' : 'string$', '$options' : 'i'}})
Містить string
db.collection.find({name:{'$regex' : 'string', '$options' : 'i'}})
Зберігайте це як закладку та посилання на будь-які інші зміни, які вам можуть знадобитися.
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
$not
and і$regex
в поєднанні, здається, працює для мене.