MongoDB文本搜索

MongoDB文本搜索,mongodb,Mongodb,我认为我们可以使用本文档中提到的方法限制mongodb文本搜索中扫描的项目数量: 让我在这里简单地写一下。我有一套库存文件: { _id: 1, dept: "tech", description: "lime green computer" } { _id: 2, dept: "tech", description: "wireless red mouse" } { _id: 3, dept: "kitchen", description: "green placemat" } { _id:

我认为我们可以使用本文档中提到的方法限制mongodb文本搜索中扫描的项目数量:

让我在这里简单地写一下。我有一套库存文件:

{ _id: 1, dept: "tech", description: "lime green computer" }
{ _id: 2, dept: "tech", description: "wireless red mouse" }
{ _id: 3, dept: "kitchen", description: "green placemat" }
{ _id: 4, dept: "kitchen", description: "red peeler" }
{ _id: 5, dept: "food", description: "green apple" }
{ _id: 6, dept: "food", description: "red potato" }
然后我创建了一个索引:

db.inventory.ensureIndex(
   {
     dept: 1,
     description: "text"
   }
)
我可以编写此查询,它可以工作:

db.inventory.find( { dept: "kitchen", $text: { $search: "green" } } )
现在,如果我使用这种方法,我可以搜索特定的部门。我的问题是,我想要这个功能,但我也想要在所有部门自由搜索。但是这个查询不起作用:
db.inventory.find({$text:{$search:{$green}})


我使用的是2.6.5版。

您创建的索引是复合索引,因此无法运行
db.inventory.find({$text:{$search:“green”}})

如果要同时运行这两个,可以将索引更改为

db.inventory.ensureIndex(
   {
     description: "text",
     dept: 1
   }
)
但在第一次查询时会有更多的扫描