当前位置:  开发笔记 > 编程语言 > 正文

如何将新字段添加到Mongo汇总结果?

如何解决《如何将新字段添加到Mongo汇总结果?》经验,为你挑选了1个好方法。



1> user2683814..:

$project您所经历的阶段是多余的。您可以轻松地将所有逻辑转移到$group舞台上,并逐步完成$project以重新格式化您的响应。

下面是这样的。

[{
    "$match": {
        "$and": [{
            updatedAt: {
                $lt: new Date('1-13-2017')
            }
        }, {
            updatedAt: {
                $gte: new Date('1-05-2017')
            }
        }]
    }
}, {
    "$group": {
        "_id": {
            $dateToString: {
                format: "%m-%d-%Y",
                date: "$updatedAt"
            }
        },
        "delivered": {
            $sum: {
                "$cond": {
                    if: {
                        $eq: ["$delivered", true]
                    },
                    then: 1,
                    else: 0
                }
            }
        },
        "clicked": {
            $sum: {
                "$cond": {
                    if: {
                        $eq: ["$clicked", true]
                    },
                    then: 1,
                    else: 0
                }
            }
        },
        "unsubscribed": {
            $sum: {
                "$cond": {
                    if: {
                        $eq: ["$unsubscribed", true]
                    },
                    then: 1,
                    else: 0
                }
            }
        }
    }
}, {
    "$project": {
        "_id": 0,
        "date": "$_id",
        "delivered": 1,
        "clicked": 1,
        "unsubscribed": 1
    }
}]

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有