具有搜索自动完成索引的猫鼬

时间:2021-02-02 18:59:17

标签: mongodb mongoose mongodb-query lucene mongodb-atlas-search

我想在 MongoDB Atlas 上对我的集合中的名称字段进行自动完成搜索。我在 MongoDB 地图集中配置了一个搜索索引,如下所示:

{
  "mappings": {
    "dynamic": false,
    "fields": {
      "name": {
        "foldDiacritics": false,
        "maxGrams": 8,
        "type": "autocomplete"
      }
    }
  }
}

我正在尝试通过 mongoose 在整个集合中搜索一个子字符串,如下所示:

collection.aggregate([
    {
      $search: {
        autocomplete: {
          path: 'name',
          query: query,
        },
      },
    },
    {
      $limit: 10,
    },
    {
      $project: {
        _id: 0,
        name: 1,
      },
    },
  ]);

我总是得到 0 结果,有没有人可以帮助我理解我做错了什么?

谢谢, 埃雷兹

1 个答案:

答案 0 :(得分:1)

问题是我更改了默认索引名称(即“默认”),在这种情况下,我需要在查询中指定新索引名称或将索引更改为“默认”。但是在 MongoDB 文档中没有发现任何提及。