正则表达式的多种模式 MongoDB 图集

Multiple Patterns for Regex Expression MongoDB Atlas

我正在尝试让 MongoDB 聚合管道正常工作。我需要将名称与“John”匹配并将其“家乡”字段正则表达式匹配为正则表达式匹配“CAPETOWN”或“FLORIDA”而不区分大小写。基本上,如果这些模式中的任何一个存在于文档的“家乡”字段中。这是我目前所拥有的。

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

我只能得到CAPETOWN,我想要一个OR。例如“家乡”包含带有选项 (i) 的 CAPETOWN 或 FLORIDA。我该怎么做?

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

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

You can test it here