Tổng hợp MongoDB cung cấp $max
nhưng trong trường hợp của bạn, bạn muốn bản ghi "toàn bộ" như nó vốn có. Vì vậy, điều thích hợp cần làm ở đây là $sort
và sau đó sử dụng $first
toán tử trong $group
tuyên bố:
db.collection.aggregate([
{ "$sort": { "session": 1, "age": -1 } },
{ "$group": {
"_id": "$session",
"age": { "$first": "$age" },
"firstName": { "$first" "$firstName" },
"lastName": { "$first": "$lastName" }
}}
])
Vì vậy, "sắp xếp" sẽ đúng thứ tự và "phân nhóm" chọn lần xuất hiện đầu tiên trong khóa "nhóm" nơi các trường đó tồn tại.
Chủ yếu là $first
ở đây vì $sort
được thực hiện theo thứ tự ngược lại. Bạn cũng có thể sử dụng $last
khi theo thứ tự tăng dần.