小编gan*_*esh的帖子

在 mongodb 聚合中使用 $expr 内部的 $regex

我的文档如下所示

doc = {
    name: 'abc',
    age:20
}
Run Code Online (Sandbox Code Playgroud)

我的查询看起来像

{ $expr: {$and:[{ $gt:[ "$age",  10 ] },
                { $regex:["$name",'ab']}
               ]
          }
} }
Run Code Online (Sandbox Code Playgroud)

但它不起作用并且我收到错误

无法识别的表达式“$regex”

我怎样才能让它发挥作用?

我原来的查询看起来像这样

db.orders.aggregate([{
$match: {}},
{$lookup: {
    from: "orders",
    let: {
        "customer_details": "$customerDetails"
    },
    pipeline: [
        {
            $match: {
                $expr: {
                        $and: [
                                { $or: [
                                                {
                                                $eq: ["$customerDetails.parentMobile","$$customer_details.parentMobile"]
                                                },
                                                {$eq: ["$customerDetails.studentMobile","$$customer_details.parentMobile"]
                                                },
                                                {$eq: ["$customerDetails.studentMobile","$$customer_details.parentMobile"]
                                                },
                                                {$eq: ["$customerDetails.studentMobile","$$customer_details.studentMobile"]
                                                }
                                            ]
                                        },
                                {$eq: ["$customerDetails.zipCode","$$customer_details.zipCode"]},
                                {$eq: ["$customerDetails.address","$$customer_details.address"]}
                        ]
                    }

            }
        }],
    as: "oldOrder"
}
}])
Run Code Online (Sandbox Code Playgroud)

我想用于regex …

regex mongodb mongodb-query aggregation-framework expr

3
推荐指数
2
解决办法
6438
查看次数