Mongo聚合 - 带有附加数据的最后记录

时间:2017-12-31 09:40:06

标签: mongodb aggregation-framework grouping

让我们考虑一下这个例子:

https://docs.mongodb.com/manual/reference/operator/aggregation/last/ 我想包括其他字段,如上次销售的价格或数量。我的意思是如何包含不属于key或者聚合表达式的字段。有可能吗?

1 个答案:

答案 0 :(得分:1)

基本上可以将整个文档作为$ group阶段的输出。有一个特殊变量$$ROOT,在这种情况下很有用。因此,例如,如果您想获取上次处理的文档,可以使用以下代码:

db.sales.aggregate([
    { "$sort": { "date": 1 } },
    { 
        $group: {
            _id: "$item",
            lastDocument: { $last: "$$ROOT" }
        } 
    }
])