Sử dụng findOne() để truy xuất document theo _id
Khác với find() trả về cursor, findOne() trả về trực tiếp một document duy nhất (hoặc null).
Dữ liệu mẫu
> db.demo340.insertOne({_id: 1, "Name": "Chris", Age: 21});
> db.demo340.insertOne({_id: 2, "Name": "David", Age: 23});
> db.demo340.insertOne({_id: 3, "Name": "Bob", Age: 20});
> db.demo340.insertOne({_id: 4, "Name": "Sam", Age: 19});
Tìm document _id = 1
> db.demo340.findOne({ _id: 1 });
Kết quả
{ "_id": 1, "Name": "Chris", "Age": 21 }
So sánh:
| Phương thức | Trả về | Dùng khi |
|---|---|---|
find() | Cursor (có thể iterate) | Cần nhiều document |
findOne() | Document hoặc null | Cần chính xác 1 document |
find().limit(1) | Cursor với 1 doc | Cần cursor methods |
Mẹo: findOne({_id: id}) nhanh hơn find({_id: id}).limit(1) vì dừng ngay khi tìm thấy.