猫鼬似乎无法汇总一笔金额并归还所有物品

时间:2014-04-04 19:09:56

标签: mongodb mongoose

我有这个运行

的mongoose查询

    db.accounts.aggregate([{
        $unwind: "$Publishers"
    }, {
        $group: {
            _id: "$Profile._id",
            reachTotal: {
                $sum: "$Publishers.reach"
            },
            Publishers: {
                $push: "$Publishers"
            },
            Profile: {
                $first: "$Profile"
            }
        }
    }, {
        $sort: {
            reachTotal: 1
        }
    }])


它工作正常,但问题是有些记录没有'$ Publishers.reach'。 Mongoose不返回那些总和为null,undefined或0的记录。有没有办法让mongoose返回它们?

1 个答案:

答案 0 :(得分:2)

你必须告诉mongodb以cond语句或ifNull语句的形式做什么,具体取决于你的文档结构。 http://docs.mongodb.org/manual/reference/operator/aggregation/cond/ http://docs.mongodb.org/manual/reference/operator/aggregation/ifNull/

...
reachTotal: { $sum: { $ifNull: ["$Publishers.reach", 0] } }