Группировка строк по умноженным полям и возврат других полей - PullRequest
0 голосов
/ 22 марта 2020

Я хочу сгруппировать строки по полям умножения и вернуть другие поля, как в моем примере, но это не работает.

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'}}
    ])

Как мне достичь своей цели? Спасибо!

1 Ответ

1 голос
/ 22 марта 2020

Вы были почти рядом, код имеет неправильный синтаксис:

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