Я использовал оператор SQL "Like" с помощью pymongo,
db.test.find({'c':{'$regex':'ttt'}})
Но как я могу использовать оператор "Не нравится"?
Я пробовал
db.test.find({'c':{'$not':{'$regex':'ttt'}})
Из docs:
Оператор $not не поддерживает операции с $regex оператор. Вместо этого используйте//или в ваших интерфейсах драйверов, используйте возможность регулярного выражения языков для создания регулярного выражения объекты. Рассмотрим следующий пример, в котором используется соответствие шаблону выражение //:
db.inventory.find( { item: { $not: /^p.*/ } } )
EDIT (@idbentley):
{$regex: 'ttt'}
обычно эквивалентен /ttt/
в mongodb, поэтому ваш запрос станет db.test.find({c: {$not: /ttt/}}
EDIT2 (@KyungHoon Kim):
В python это работает: 'c':{'$not':re.compile('ttt')}
Вы можете делать с регулярным выражением, которое не содержит слова. Также вы можете использовать $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/
{$regex: 'ttt'}
обычно эквивалентно/ttt/
в mongodb, поэтому ваш запрос станетdb.test.find({c: {$not: /ttt/}}
.