Để tìm tài liệu cũ nhất (oldest) hoặc mới nhất (youngest/recent) theo trường ngày giờ, dùng sort() kết hợp limit(1).
Ví dụ: Collection getOldestAndYoungestPostDemo có trường UserPostDate (ISODate):
> db.getOldestAndYoungestPostDemo.insertOne({"UserId":"Larry@123","UserName":"Larry","UserPostDate":new ISODate('2019-03-27 12:00:00')});
> db.getOldestAndYoungestPostDemo.insertOne({"UserId":"Sam@897","UserName":"Sam","UserPostDate":new ISODate('2012-06-17 11:40:30')});
> db.getOldestAndYoungestPostDemo.insertOne({"UserId":"David@777","UserName":"David","UserPostDate":new ISODate('2018-01-31 10:45:35')});
> db.getOldestAndYoungestPostDemo.insertOne({"UserId":"Chris@909","UserName":"Chris","UserPostDate":new ISODate('2017-04-14 04:12:04')});
Tìm bài cũ nhất (sắp xếp tăng dần, lấy 1):
> db.getOldestAndYoungestPostDemo.find().sort({ "UserPostDate": 1 }).limit(1);
Kết quả: Sam (2012-06-17).
Tìm bài mới nhất (sắp xếp giảm dần, lấy 1):
> db.getOldestAndYoungestPostDemo.find().sort({ "UserPostDate": -1 }).limit(1);
Kết quả: Larry (2019-03-27).
Mẹo: Nếu thường xuyên truy vấn pattern này, hãy tạo index trên UserPostDate để tối ưu hiệu năng.