0

假设我们有一个用一个条目初始化的集合

db.test.insert({text:"why does this not work"})

所以看起来像这样

db.test.find()
{ "_id" : ObjectId("50d500b384a6859f9a9bfbc1"), "text" : "why does this not work" }

还有一个看起来像的查询

db.test.find({"text":/.*why.*/})

我期待这将获得第一条记录,但事实并非如此。有什么想法为什么不呢?

4

2 回答 2

0

Javascript 不支持'.'。请改用 [\s\S]。这实际上意味着:无论是空间还是非空间。

编辑:虽然你的例子工作得很好。我在 Javascript 中遇到了上述问题并 [\s\S] 修复了它。去尝试一下。

于 2012-12-22T01:16:29.577 回答
0

它应该工作得很好。

MongoDB shell version: 2.2.0
connecting to: test
> db.test.insert({text: "this is some sample text"})
> db.test.find()
{ "_id" : ObjectId("50d50b85499df584cc266f9a"), "text" : "this is some sample text" }
> db.test.find({text: /sample/})
{ "_id" : ObjectId("50d50b85499df584cc266f9a"), "text" : "this is some sample text" }
> db.test.find({text: /.*sample.*/})
{ "_id" : ObjectId("50d50b85499df584cc266f9a"), "text" : "this is some sample text" }

即使您的确切样本也有效:

> db.test.insert({text:"why does this not work"})
> db.test.find({"text":/.*why.*/})
{ "_id" : ObjectId("50d50c4c499df584cc266f9b"), "text" : "why does this not work" }

也许你忽略了别的东西?

于 2012-12-22T01:24:53.600 回答