Để lấy record có giá trị lớn nhất (top 1 descending), dùng sort({field: -1}) kết hợp limit(1).
Tạo collection demo267:
> db.demo267.insertOne({id:100,"Name":"Chris"});
> db.demo267.insertOne({id:100,"Name":"Adam"});
> db.demo267.insertOne({id:100,"Name":"David"});
> db.demo267.insertOne({id:100,"Name":"Bob"});
Sắp xếp Name giảm dần và lấy 1 record đầu:
> db.demo267.find().sort({Name:-1}).limit(1);
Kết quả - "David" là lớn nhất theo alphabet:
{
"_id" : ObjectId("5e4811a51627c0c63e7dbaad"),
"id" : 100,
"Name" : "David"
}
Mẹo: Cách này hiệu quả cho top-N đơn giản. Với aggregate phức tạp, dùng $sort + $limit trong pipeline.