$text - $search聚合后查找mongoDB



我需要通过关键字搜索到我的DB的文档,我在mongo的官方网站上找到了这个文档。然而,我有几个问题:

  1. 我需要首先进行查找,并且mongo希望$text搜索作为第一个管道,因此,如果我在查找之后进行查找,那么我将从查找中排除字段。

  2. 我只需要在一些固定的字段之间搜索,而不是到处搜索。

例如我的文档是这样的:

{
  _id: ObjectId('60dcb67ebe94846b27402dc7'),
  field1: "dada",
  field2: "lalala",
  field3: "nanana",
  creator: ObjectId('632cb67ebe94846b27402dc1')
}

我需要搜索field1, field2和来自创建者的一些字段,让我们说creator.name,我将在查找后得到。根据文档的第一件事,首先我必须创建一个索引,所以让我们在field1上做。之后,我必须将$text聚合放在$match管道中,但作为其第一个。

你认为有可能先做查找,然后再做$text搜索吗?也可以指定要搜索的字段?

要执行文本搜索查询,必须有文本索引关于你的收藏。一个集合只能有一个文本搜索索引,但是该索引可以覆盖多个字段。不能创建跨多个集合的测试索引。

同时,包含$text$match阶段必须是管道中的第一阶段。

最新更新