L'aggregazione MongoDB offre il $max
operatore, ma nel tuo caso vuoi il record "intero" così com'è. Quindi la cosa appropriata da fare qui è $sort
e poi usa il $first
operatore all'interno di un $group
dichiarazione:
db.collection.aggregate([
{ "$sort": { "session": 1, "age": -1 } },
{ "$group": {
"_id": "$session",
"age": { "$first": "$age" },
"firstName": { "$first" "$firstName" },
"lastName": { "$first": "$lastName" }
}}
])
Quindi "l'ordinamento" ottiene l'ordine corretto e il "raggruppamento" seleziona la prima occorrenza all'interno della chiave di "raggruppamento" in cui esistono quei campi.
Principalmente $first
qui perché $sort
si fa in ordine inverso. Puoi anche utilizzare $last
anche se in ordine crescente.