Mongodb搜索与单词之间的空间

时间:2014-02-12 12:28:17

标签: mongodb

我使用快递代码搜索mongo集合中的字符串

> var criteria = options.searchId;

>     criteria = '.*' + criteria + '.*';

> this.find( { $or: [ { 'content' : { $regex :  criteria , $options :
> 'i' }} , { 'title' : { $regex : criteria , $options : 'i' }} ]} )

但是当我搜索test test时我没有得到任何结果,但内容列中存在相同的内容(我认为该值正在测试%20test)test我得到了正确的结果。我的问题是一个声明没有被搜索,但在搜索时只有一个单词。

1 个答案:

答案 0 :(得分:1)

它对我有用:

> db.articles.drop()
false
> db.articles.insert({"title": "first", "content": "foo bar"})
> db.articles.insert({"title": "second", "content": "a test test b"})
> db.articles.insert({"title": "third", "content": "only test"})
> db.articles.insert({"title": "test test in title", "content": "lorem ipsum"})
> var query = {"$regex": ".*test test.*", "$options": "i"}
> db.articles.find({"$or": [{"content": query}, {"title": query}]})
{ "_id" : ObjectId("52fb789ff00e23295fe08d86"), "title" : "second", "content" : "a test test b" }
{ "_id" : ObjectId("52fb78f5f00e23295fe08d88"), "title" : "test test in title", "content" : "lorem ipsum" }

这是你期望的吗?

如果您有test%20test而不是test test,那么您的网络框架中的网址参数处理可能会出现问题。