Как я могу использовать оператор 'Not Like' в MongoDB



Я использовал оператор SQL 'Like' с помощью pymongo,



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


но как я могу использовать оператор 'не нравится'?



пробовал



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

2 ответов:

С docs:

долларов США не оператор не поддерживает работу с $регулярное выражение оператор. Вместо того, чтобы использовать / / или в интерфейсах драйверов, используйте возможность регулярного выражения языка для создания регулярного выражения объекты. Рассмотрим следующий пример, в котором используется соответствие шаблона выражение //:

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

EDIT (@idbentley):

{$regex: 'ttt'} обычно эквивалентно /ttt/ in 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/

Comments

    Ничего не найдено.