Phương thức findOne() trả về một tài liệu đầu tiên thỏa mãn điều kiện (khác với find() trả cursor). Tạo collection:
> db.demo596.insertOne({_id:1,"FirstName":"John","LastName":"Smith"});
{ "acknowledged" : true, "insertedId" : 1 }
> db.demo596.insertOne({_id:2,"FirstName":"John","LastName":"Doe"});
{ "acknowledged" : true, "insertedId" : 2 }
> db.demo596.insertOne({_id:3,"FirstName":"Chris","LastName":"Brown"});
{ "acknowledged" : true, "insertedId" : 3 }
> db.demo596.insertOne({_id:4,"FirstName":"David","LastName":"Miller"});
{ "acknowledged" : true, "insertedId" : 4 }
Hiển thị tất cả (4 tài liệu FirstName="John" có 2):
> db.demo596.find();
Truy vấn findOne FirstName="John" (trả về tài liệu đầu tiên theo thứ tự tự nhiên):
> db.demo596.findOne({"FirstName":"John"});Kết quả (chỉ 1 tài liệu):
Đặc điểm findOne:
- Trả về object (document) thay vì cursor
- Dừng ngay khi tìm thấy 1 match (hiệu quả hơn find().limit(1))
- Thường dùng kiểm tra tồn tại, lấy config, profile user
- Kết hợp sort() để kiểm soát tài liệu nào được trả:
findOne({query}).sort({field: -1})