Нет такого модуля 'SocketIO'

Агрегация MongoDB предлагает оператор $max , но в вашем случае вы хотите, чтобы «целая» запись была такой, какая есть. Таким образом, подходящей задачей является $sort , а затем использовать оператор $first в инструкции $group :

db.collection.aggregate([
    { "$sort": { "session": 1, "age": -1 } },
    { "$group": {
        "_id": "$session",
        "age": { "$first": "$age" },
        "firstName": { "$first" "$firstName" },
        "lastName": { "$first": "$lastName" }
    }}
])

Таким образом, «сортировка» получает право порядка, а «группировка» выбирает первое вхождение в ключ «группировки», где эти поля существуют.

В основном $first здесь, потому что $sort выполняется в обратном порядке. Вы также можете использовать $last в порядке возрастания.

0
задан Yannick Loriot 31 December 2018 в 13:10
поделиться