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

Lấy một document duy nhất với findOne() thay vì findById

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ứcTrả vềDùng khi
find()Cursor (có thể iterate)Cần nhiều document
findOne()Document hoặc nullCần chính xác 1 document
find().limit(1)Cursor với 1 docCầ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.