ใช้ projection ใน find() โดยระบุฟิลด์ที่ต้องการ (1) หรือไม่ต้องการ (0) เพื่อจำกัดข้อมูลที่ส่งกลับ สร้างคอลเลกชันตัวอย่าง:
> db.demo330.insertOne({"Id":101,"Name":"Chris","Age":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5e52149ff8647eb59e562081") }
> db.demo330.insertOne({"Id":102,"Name":"Sam","Age":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5214aaf8647eb59e562082") }
> db.demo330.insertOne({"Id":103,"Name":"David","Age":28});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5214b3f8647eb59e562083") }
> db.demo330.insertOne({"Id":104,"Name":"Bob","Age":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5214bdf8647eb59e562084") }
แสดงข้อมูลทั้งหมด:
> db.demo330.find();
แสดงเฉพาะฟิลด์ Name (ตั้งค่าเป็น 1):
> db.demo330.find({},{Name:1});
ผลลัพธ์ (มีเฉพาะ _id และ Name):
{ "_id" : ObjectId("5e52149ff8647eb59e562081"), "Name" : "Chris" }
{ "_id" : ObjectId("5e5214aaf8647eb59e562082"), "Name" : "Sam" }
{ "_id" : ObjectId("5e5214b3f8647eb59e562083"), "Name" : "David" }
{ "_id" : ObjectId("5e5214bdf8647eb59e562084"), "Name" : "Bob" }
กฎของ Projection
1= include (รวม),0= exclude (ตัดออก)- ไม่สามารถผสม include และ exclude ได้ในคิวรีเดียว (ยกเว้น _id)
_idถูก include โดยอัตโนมัติ ต้องระบุ{_id: 0}เพื่อซ่อน- สำหรับ nested field:
{"details.Name": 1} - ช่วยลด network traffic และ memory usage อย่างมาก