小编sop*_*ith的帖子

MongoDb $addFields 和 $match

在我的 mongodb 查询中,我使用 $addFields 添加由其他三个字段连接的 ID 字段。我的问题是,如果我将新添加的字段与我要查询的值匹配,则不会得到任何结果。对于其他领域,它们工作得很好。

聚合顺序

什么是聚合

data = await model.aggregate([
            {
                $project: {
                    projectName: 1,
                    price: 1,
                    'document': '$$ROOT'
                }
            },
            {
                $addFields:{
                    'document.id': {$concat: ['$document.propertyId.prefix','$document.propertyId.number']}
                }
            },
            {
                $match: {
                    $and: [
                        {
                            $or: [
                                {id: {$regex: '.*' + req.query.search + '.*', $options: "i"}},
                                {projectName: {$regex: '.*' + req.query.search + '.*', $options: "i"}},

                                /*This also doesnt work*/
                                // {'document.id': {$regex: '.*' + req.query.search + '.*', $options: "i"}},
                                // {'document.projectName': {$regex: '.*' + req.query.search + '.*', $options: …
Run Code Online (Sandbox Code Playgroud)

aggregation mongodb node.js

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

aggregation ×1

mongodb ×1

node.js ×1