MongoDB Regex Query: Почему это не работает? - PullRequest
3 голосов
/ 11 июня 2011

См. От второго к последнему вводу, пожалуйста.

Примечание: я использовал http://try.mongodb.org/

> person = {fullname : "Derek Litz"}
{
     "fullname" : "Derek Litz"
     }
> db.people.save(person)
"ok"
> db.people.find()

    [ 
      {   "_id" : {   "$oid" : "4df3b39ccc93747e68039f08"   },   "fullname" : "Derek Litz"   }
    ]
> db.people.find({fullname : 'Derek Litz'})

    [ 
      {   "_id" : {   "$oid" : "4df3b39ccc93747e68039f08"   },   "fullname" : "Derek Litz"   }
    ]
> db.people.find({fullname : /^D.*/})

    [ 
      
    ]
> db.people.find({fullname : {$regex : '^D.*'}})

    [ 
      {   "_id" : {   "$oid" : "4df3b39ccc93747e68039f08"   },   "fullname" : "Derek Litz"   }
    ]
>

Ответы [ 2 ]

9 голосов
/ 11 июня 2011

Я думаю, что это просто ошибка в try.mongodb.org.Это работает для меня в моей локальной mongo оболочке:

db.people.find({first_name: {$regex: /e/}})
db.people.find({first_name: /e/})

И в документации сказано это :

Вы можете использовать регулярные выражения в выражениях запросов к базе:

db.customers.find( { name : /acme.*corp/i } );
db.customers.find( { name : { $regex : 'acme.*corp', $options: 'i' } } );
[...]
db.customers.find( { name : { $regex : /acme.*corp/i, $nin : ['acmeblahcorp'] } } );

Таким образом, поддерживаются как строковые, так и буквенные версии RegExp.

2 голосов
/ 11 июня 2011

Кажется, что http://try.mongodb.org/ просто не поддерживает регулярные выражения по некоторым причинам. Реальная консоль в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...