MongoDB 复合文本搜索

MongoDB Compound text search

我的 mongo 数据库中有一个这样的集合,假设它被称为分类学。

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

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

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

现在,我希望仅当在集合的同一文档中找到两个参数时才能够搜索并从中获取 return,这是我的尝试:

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

这个方法的问题是它会 return "Eros" 或“2”的任何匹配项,我想要的是 return "Eros" 时的值] AND "2" 在集合的文档中匹配。

感谢您的帮助!

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

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