Để lấy tài liệu đầu tiên (theo thứ tự tự nhiên/insert), dùng find() kết hợp limit(1). Tạo collection:
> db.demo681.insertOne({_id:101,Name:"Chris"});
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo681.insertOne({_id:102,Name:"Bob"});
{ "acknowledged" : true, "insertedId" : 102 }
> db.demo681.insertOne({_id:103,Name:"David"});
{ "acknowledged" : true, "insertedId" : 103 }
> db.demo681.insertOne({_id:104,Name:"Bob"});
{ "acknowledged" : true, "insertedId" : 104 }
> db.demo681.insertOne({_id:105,Name:"Sam"});
{ "acknowledged" : true, "insertedId" : 105 }
Hiển thị tất cả:
> db.demo681.find();
Kết quả (theo thứ tự _id tăng dần):
Lấy 1 tài liệu đầu tiên:
> db.demo681.find().limit(1);Kết quả:
Lưu ý quan trọng:
- Thứ tự "đầu tiên" mặc định là **thứ tự tự nhiên (natural order)** - gần như thứ tự insert
- Để có thứ tự **đảm bảo**, luôn dùng
sort():db.demo681.find().sort({_id: 1}).limit(1) findOne()tương đươngfind().limit(1)nhưng trả về document thay vì cursor
Lấy tài liệu MỚI NHẤT: db.demo681.find().sort({_id: -1}).limit(1) (ObjectId chứa timestamp).
Lấy tài liệu CŨ NHẤT: db.demo681.find().sort({_id: 1}).limit(1).