MongoDB复合文本搜索

MongoDB复合文本搜索,mongodb,full-text-search,full-text-indexing,Mongodb,Full Text Search,Full Text Indexing,在我的mongo数据库中有这样一个集合,比如说它叫做分类法 { "_id" : ObjectId("5810e15a762a39b41912a131"), "validName" : "Eros", "idUser" : ObjectId("1") } { "_id" : ObjectId("5810e15a762a39b41912a132"), "validName" : "Eros", "idUser" : ObjectId("2") } 我已经创建了一个复合索引,以便能

在我的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”和“2”时返回值


谢谢你的帮助

如果您只需要特定的字符串,我认为您不需要文本索引

db.taxonomic.find({"$or" : [{"validName" : "Eros"},{"validName" : "2"}]},{idUser:1,validName:1})

我不认为你需要一个文本索引,如果你只想要特定的字符串

db.taxonomic.find({"$or" : [{"validName" : "Eros"},{"validName" : "2"}]},{idUser:1,validName:1})

你需要添加一个文本索引,你能告诉我你在哪个字段上创建了文本索引吗?你需要添加一个文本索引,你能告诉我你在哪个字段上创建了文本索引吗?我正在寻找一个“and”操作符,但它仍然回答了我的问题。谢谢。我正在找“和”接线员,但它仍然回答了我的问题。谢谢