在MongoDB中,可以使用正则表达式进行匹配,并使用$regex操作符来实现。当匹配成功后,可以使用$project操作符来选择需要返回的字段。如果需要返回匹配到的数组元素,可以使用$elemMatch操作符或$filter操作符来实现。

以下是一个示例:

db.collection.aggregate([
  {
    $match: {
      fieldName: {
        $regex: /pattern/
      }
    }
  },
  {
    $project: {
      matchedArray: {
        $filter: {
          input: "$arrayField",
          cond: {
            $regexMatch: {
              input: "$$this",
              regex: /pattern/
            }
          }
        }
      }
    }
  }
])

在上述示例中,假设有一个集合(collection)包含字段(fieldName)和数组字段(arrayField)。我们使用$match操作符进行正则匹配,然后使用$project操作符选择需要返回的字段。在$project操作符中,我们使用$filter操作符来过滤数组字段,只返回匹配到的元素。在$filter操作符中,我们使用$regexMatch操作符进行正则匹配。

请注意,上述示例中使用的是正则表达式/pattern/,你需要将其替换为实际的正则表达式

Mongo正则匹配后取出值$elementAtArray

原文地址: https://www.cveoy.top/t/topic/ipMq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录