MongoDB-aggregatie biedt de $max
operator, maar in uw geval wilt u het "hele" record zoals het is. Dus het juiste ding om hier te doen is $sort
en gebruik dan de $first
operator binnen een $group
verklaring:
db.collection.aggregate([
{ "$sort": { "session": 1, "age": -1 } },
{ "$group": {
"_id": "$session",
"age": { "$first": "$age" },
"firstName": { "$first" "$firstName" },
"lastName": { "$first": "$lastName" }
}}
])
Dus de "sortering" zorgt voor de juiste volgorde, en de "groepering" kiest de eerste instantie binnen de "groepering"-sleutel waar die velden bestaan.
Meestal $first
hier omdat de $sort
gebeurt in omgekeerde volgorde. Je kunt ook $last
. gebruiken ook in oplopende volgorde.