如何在mongoDB中排除$ project计算字段

时间:2019-01-14 04:31:53

标签: mongodb

我已经在聚合项目中创建了一个新字段进行比较,并且我不希望该字段显示在最终结果中。如何排除呢? 这是我的示例查询。在这种情况下,我想隐藏字段yearDate。有可能吗?

db.user.aggregate([
    $project: {name: 1, yearDate: {$month: '$date'}, content: 1, date: 1}},
    {
        $match: {
            $and: [
                {
                    yearDate: {$ne: 2018}
                },
                {
                    content: /2018/
                }
            ]
        }
    },
    {
        $sort: {
            date: 1
        }
    }
]);

当前结果

{ "date" : "2018-11-01 02:42:20", "content" : 'abc2018', "yearDate" : "2018", "name": "test"}

预期结果

{ "date" : "2018-11-01 02:42:20", "content" : 'abc2018',"name": "test"}

1 个答案:

答案 0 :(得分:1)

您需要额外的$project阶段才能从最终结果中排除该字段,请尝试:

db.user.aggregate([
    $project: {name: 1, yearDate: {$month: '$date'}, content: 1, date: 1}},
    {
        $match: {
            $and: [
                {
                    yearDate: {$ne: 2018}
                },
                {
                    content: /2018/
                }
            ]
        }
    },
    {
        $sort: {
            date: 1
        }
    },
    {
        $project: {
            yearDate: 0
        }
    }
]);