我正在尝试实施MongoDB地图集搜索,目标是在2个字段上自动完成。
我目前有此实现:
const searchStep = {
$search: {
// Read more about compound here:
// https://docs.atlas.mongodb.com/reference/atlas-search/compound/
compound: {
must: [
{
autocomplete: {
query,
path: 'name',
},
},
{
autocomplete: {
query,
path: 'description',
},
},
],
},
},
}
这似乎不起作用,似乎仅在名称和描述都匹配时才起作用。如何解决此问题,因此同时查询名称和描述?
我现在尝试使用通配符选项:
{
wildcard: {
query,
path: ['name', 'description'],
allowAnalyzedField: true,
}
}
但是通配符解决方案似乎不起作用-没有返回相关结果...
如果您要在name
或上进行匹配subscription
,请使用should:
代替must:
must
将要求所有子查询都匹配,而should
仅要求其中一个匹配。
const searchStep = {
$search: {
// Read more about compound here:
// https://docs.atlas.mongodb.com/reference/atlas-search/compound/
compound: {
should: [
{
autocomplete: {
query,
path: 'name',
},
},
{
autocomplete: {
query,
path: 'description',
},
},
],
},
},
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句