我正在尝试使用 $searchBeta (聚合)在 MongoDB 中进行全文搜索,并且我正在使用“正则表达式”运算符来执行此操作。这是我所拥有的 $searchBeta 的一部分,它没有按照我的预期工作:
$searchBeta: {
regex: {
query: '\blightn', // '\b' is the word boundary metacharacter
path: ["name", "set_name"],
allowAnalyzedField: true
}
}
这是我希望表达式匹配的两个文档的示例:
{
"name": "Lightning Bolt"
"set_name": "Masters 25"
},
{
"name": "Chain Lightning",
"set_name": "Battlebond"
}
我实际得到的:
[] //empty array
如果我使用如下表达式:
$searchBeta: {
regex: {
query: '[a-zA-Z]'
path: ["name", "set_name"],
allowAnalyzedField: true
}
}
然后我得到结果。
我无法让任何包含正则表达式元字符和/或选项的表达式起作用,所以我很确定我只是在查询字符串中输入错误。$searchBeta 正则表达式文档并没有真正涵盖如何将元字符格式化为查询字符串。此外,$searchBeta 正则表达式运算符与 $regex 不同,因为它不需要斜杠(即 "/your expression/" )。真的把我的头发拉到了如此简单的事情上,我无法弄清楚。