MongoDB复合文本搜索

时间:2016-11-11 04:08:56

标签: mongodb full-text-search full-text-indexing

我的mongo数据库中有这样的集合,让我们说它被称为分类学。

{
  "_id" : ObjectId("5810e15a762a39b41912a131"),
  "validName" : "Eros",
  "idUser" : ObjectId("1")
}
{
 "_id" : ObjectId("5810e15a762a39b41912a132"),
 "validName" : "Eros",
 "idUser" : ObjectId("2")
}

我已经创建了一个复合索引,可以搜索我想要的两个值,例如这个。

db.taxonomic.createIndex({"idUser":1,"validName":1})

现在,我希望只有在集合的同一文档中找到这两个参数时才能搜索并从中获得返回,这是我的尝试:

db.taxonomic.find({$text:{$search:"Eros 2"}},{idUser:1,validName:1})

这种方法的问题在于它将返回任何匹配的" Eros"或者" 2",我想要的是当" Eros" AND" 2"在该集合的文档中匹配。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果你只想要特定的字符串

,我认为你不需要文本索引
db.taxonomic.find({"$or" : [{"validName" : "Eros"},{"validName" : "2"}]},{idUser:1,validName:1})