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для поиска без учета регистране содержит
stringdb.collection.find({name:{'$regex' : '^((?!string).)*$', '$options' : 'i'}})точный регистр
stringdb.collection.find({name:{'$regex' : '^string$', '$options' : 'i'}})Начнем с
stringdb.collection.find({name:{'$regex' : '^string', '$options' : 'i'}})заканчивается
stringdb.collection.find({name:{'$regex' : 'string$', '$options' : 'i'}})содержит
stringdb.collection.find({name:{'$regex' : 'string', '$options' : 'i'}})держите это в качестве закладки и ссылки на любые другие изменения, которые вы можете необходимость. http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
Comments