Агрегацията на 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
когато също е във възходящ ред.