我想在 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 结果,有没有人可以帮助我理解我做错了什么?
谢谢, 埃雷兹
答案 0 :(得分:1)
问题是我更改了默认索引名称(即“默认”),在这种情况下,我需要在查询中指定新索引名称或将索引更改为“默认”。但是在 MongoDB 文档中没有发现任何提及。