Agregace MongoDB nabízí $max
operátora, ale ve vašem případě chcete "celý" záznam tak, jak je. Zde je tedy vhodné udělat $sort
a poté použijte $first
operátor v rámci $group
prohlášení:
db.collection.aggregate([
{ "$sort": { "session": 1, "age": -1 } },
{ "$group": {
"_id": "$session",
"age": { "$first": "$age" },
"firstName": { "$first" "$firstName" },
"lastName": { "$first": "$lastName" }
}}
])
Takže "třídění" dostane správné pořadí a "seskupení" vybere první výskyt v klíči "seskupení", kde tato pole existují.
Většinou $first
zde protože $sort
se provádí v opačném pořadí. Můžete také použít $last
i ve vzestupném pořadí.