Chỉ chọn trường cần thiết với projection
Tham số thứ 2 của find() xác định trường nào được trả về (1) hoặc ẩn đi (0). Giảm băng thông và tăng hiệu năng.
Dữ liệu mẫu
> db.demo330.insertOne({"Id": 101, "Name": "Chris", "Age": 21});
> db.demo330.insertOne({"Id": 102, "Name": "Sam", "Age": 24});
> db.demo330.insertOne({"Id": 103, "Name": "David", "Age": 28});
> db.demo330.insertOne({"Id": 104, "Name": "Bob", "Age": 23});
Chỉ lấy trường Name
> db.demo330.find({}, { Name: 1 });
Kết quả
{ "_id": ObjectId("..."), "Name": "Chris" }
{ "_id": ObjectId("..."), "Name": "Sam" }
{ "_id": ObjectId("..."), "Name": "David" }
{ "_id": ObjectId("..."), "Name": "Bob" }
Quy tắc:
_idluôn được trả về trừ khi khai báo{ _id: 0 }- Không thể mix 0 và 1 (trừ _id)
- Với mảng:
{ "details.Name": 1 }trả về toàn bộ mảng nhưng chỉ có trường Name