Mongo正则匹配后取出值$elementAtArray
在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/,你需要将其替换为实际的正则表达式
原文地址: https://www.cveoy.top/t/topic/ipMq 著作权归作者所有。请勿转载和采集!