Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Lấy tài liệu đầu tiên (top most) từ collection MongoDB

Để 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 đương find().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).