MongoDB正则表达式查询:为什么这不起作用?

Der*_*itz 3 regex mongodb

请参见倒数第二个输入.

注意:我使用的是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"   }?    ]
>
Run Code Online (Sandbox Code Playgroud)

mu *_*ort 9

我认为这只是一个错误try.mongodb.org.这些在我的本地mongoshell中为我工作:

db.people.find({first_name: {$regex: /e/}})
db.people.find({first_name: /e/})
Run Code Online (Sandbox Code Playgroud)

文档说这个:

您可以在数据库查询表达式中使用正则表达式:

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'] } } );

因此支持string和RegExp文字版本.