Regex Expression MongoDB Atlas的多种模式



我正在尝试让MongoDB聚合管道正常工作。我需要将名称与";约翰;并且regex他们的";故乡;字段到正则表达式匹配";开普敦";或";FLORIDA";而不区分大小写。基本上,如果这些模式中的任一个存在于";故乡;文档的字段。这就是我到目前为止所拥有的。

const news = await cachedDb.collection(COLLECTION).aggregate([
{ $match: { "name": "John", "hometown": { $regex: /CAPETOWN/, $options: 'i' } } }
]).toArray();

我只能把开普敦包括在内,我想要一个OR。例如";故乡;包含CAPETOWN或FLORIDA选项(i(。我该怎么做?

您必须直接在正则表达式字符串中设置OR。

db.collection.aggregate([
{
$match: {
"hometown": {
$regex: "CAPETOWN|FLORIDA",
$options: "i"
}
}
}
])

你可以在这里测试

最新更新