我不太了解模糊在 $searchBeta 聚合阶段是如何工作的。当我尝试在后端实现全文搜索时,我没有得到想要的结果。MongoDB 的全文搜索于去年(2019 年)发布,因此除了文档之外,确实没有太多教程和/或参考资料可供参考。我已经阅读了文档,但我仍然感到困惑,所以我想澄清一下。
假设我的数据库中有这 5 个文档:
{
"name": "Lightning Bolt",
"set_name": "Masters 25"
},
{
"name": "Snapcaster Mage",
"set_name": "Modern Masters 2017"
},
{
"name": "Verdant Catacombs",
"set_name": "Modern Masters 2017"
},
{
"name": "Chain Lightning",
"set_name": "Battlebond"
},
{
"name": "Battle of Wits",
"set_name": "Magic 2013"
}
这是我在 MongoDB Compass 中的聚合:
db.cards.aggregate([
{
$searchBeta: {
search: { //search has been deprecated, but it works in MongoDB Compass; replace with 'text'
query: 'lightn',
path: ["name", "set_name"],
fuzzy: {
maxEdits: 1,
prefixLength: 2,
maxExpansion: 100
}
}
}
}
]);
我期望我的结果是:
[
{
"name": "Lightning Bolt", //lightn is in 'Lightning'
"set_name": "Masters 25"
},
{
"name": "Chain Lightning", //lightn is in 'Lightning'
"set_name": "Battlebond"
}
]
我实际得到的:
[] //empty array
我真的不明白为什么我的结果是空的,所以如果有人解释我做错了什么,将不胜感激。