首页 > 解决方案 > 按多个字段对行进行分组并返回其他字段

问题描述

我想通过乘以字段对行进行分组并返回其他字段,就像在我的示例中一样,但它不起作用。

db.collection.aggregate([
        {'$group': {'_id': {
            '$basic.last_name',
            '$basic.first_name'
        }, 'data': {'$last': '$$ROOT'}}},
        {'$replaceRoot': {'newRoot': '$data'}}
    ])

这个变体作为例外工作,我唯一需要按两个字段分组:

db.collectio.aggregate([
        {'$group': {'_id': {'$basic.last_name', 'data': {'$last': '$$ROOT'}}},
        {'$replaceRoot': {'newRoot': '$data'}}
    ])

我怎样才能达到我的目标?谢谢!

标签: mongodbmongodb-queryaggregation-framework

解决方案


你几乎接近了,代码有错误的语法:

db.collection.aggregate([
    {'$group': {'_id': {
        'last_name': '$basic.last_name',
        'first_name': '$basic.first_name'
    }, 'data': {'$last': '$$ROOT'}}},
    {'$replaceRoot': {'newRoot': '$data'}}
])

推荐阅读