MongoDB-aggregation tilbyder $max
operatør, men i dit tilfælde vil du have "hele" posten, som den er. Så den passende ting at gøre her er $sort
og brug derefter $first
operatør inden for en $group
erklæring:
db.collection.aggregate([
{ "$sort": { "session": 1, "age": -1 } },
{ "$group": {
"_id": "$session",
"age": { "$first": "$age" },
"firstName": { "$first" "$firstName" },
"lastName": { "$first": "$lastName" }
}}
])
Så "sorteringen" får den rigtige rækkefølge, og "grupperingen" vælger den første forekomst inden for "gruppering"-nøglen, hvor disse felter findes.
For det meste $first
her fordi $sort
sker i omvendt rækkefølge. Du kan også bruge $last
også i stigende rækkefølge.