【问题标题】:MongoDB Compound text searchMongoDB 复合文本搜索
【发布时间】:2016-11-11 04:08:56
【问题描述】:

我的 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”在集合的文档中匹配时返回值。

感谢您的帮助!

【问题讨论】:

  • 你需要添加一个文本索引,你能告诉我你在哪个字段上创建了文本索引吗??

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


【解决方案1】:

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

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

【讨论】:

  • 我一直在寻找一个“和”运算符,但它仍然回答了我的问题。谢谢。
猜你喜欢
  • 2015-08-25
  • 1970-01-01
  • 2016-05-28
  • 2012-03-26
  • 1970-01-01
  • 2018-04-23
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多