在猫鼬聚合查询中使用$ regex时出现错误。我收到一个无效的运算符,错误号为15999。请帮助大家。

{ $match: { "_id": ObjectId(req.headers.token) } }, {
                        $project: {
                            inventory: {
                                $filter: {
                                    input: '$inventory',
                                    as: 'inventory',
                                    cond: {$or:[{"$$inventory.item":new RegExp('^'+req.query.text+'$', "i")},{"$$inventory.sku":new RegExp('^'+req.query.text+'$', "i")}]}
                                }
                            },
                            _id: 0
             }
  }

最佳答案

您可以在$ match中使用正则表达式,如本例所示,您将获得结果

Pincodes.aggregate([
{ "$match": { "district": new RegExp('^' + req.query.district, "i") }
},
{ "$group": { "_id": "$district" } }])
.exec((err, data) => {
if (err) {
res.status(500).json({
data: err
})
}
else {
res.status(200).json({
data: data
})
}
})

关于regex - 无法在聚合查询中的 Mongoose 中使用$ regex?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38286201/

10-13 01:22