ภาพรวมของบทนี้

บทนี้จะนำเสนอวิธีการตั้งค่าการส่งคืนของฟิลด์ที่ระบุในคิวรี่ MongoDB แทนที่จะส่งคืนข้อมูลฟิลด์ทั้งหมด

ข้อมูลทดสอบ

แทรกข้อมูลไม่กี่ชิ้นลงในคอลเลกชัน inventory

db.inventory.insertMany( [
  { item: "journal", status: "A", size: { h: 14, w: 21, uom: "cm" }, instock: [ { warehouse: "A", qty: 5 } ] },
  { item: "notebook", status: "A",  size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "C", qty: 5 } ] },
  { item: "paper", status: "D", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "A", qty: 60 } ] },
  { item: "planner", status: "D", size: { h: 22.85, w: 30, uom: "cm" }, instock: [ { warehouse: "A", qty: 40 } ] },
  { item: "postcard", status: "A", size: { h: 10, w: 15.25, uom: "cm" }, instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);

รูปแบบ

{<field>: 1 หรือ 0}

คำอธิบาย:

  • - ชื่อฟิลด์
  • 1 แทนการส่งคืนฟิลด์, 0 แทนการไม่รวมฟิลด์ (เช่น ไม่ส่งคืน)

เคล็ดลับ: สามารถใช้ true/false แทน 1 กับ 0 ได้เช่นกัน

ส่งคืนฟิลด์ที่ระบุ

ตั้งค่าฟิลด์ที่ต้องการส่งคืนผ่านพารามิเตอร์ที่สองของฟังก์ชัน find

db.inventory.find( { status: "A" }, { item: 1, status: 1 } )

คำอธิบาย:

  • คิวรี่เอกสารที่ status ตรงกับ A
  • ส่งคืนฟิลด์ _id, item, และ status

เคล็ดลับ: ฟิลด์ _id จะถูกส่งคืนโดยค่าเริ่มต้น

SQL เทียบเท่า:

SELECT item, status from inventory WHERE status = "A"

ไม่รวมฟิลด์ที่ระบุ

db.inventory.find( { status: "A" }, { status: 0, instock: 0 } )

คำอธิบาย:

  • คิวรี่เอกสารที่ status ตรงกับ A
  • ส่งคืนข้อมูลทั้งหมดยกเว้นฟิลด์ item และ status

ส่งคืนฟิลด์ที่ระบุในเอกสารซ้อน

db.inventory.find(
   { status: "A" },
   { item: 1, status: 1, "size.uom": 1 }
)

คำอธิบาย:

  • size.uom แทนการส่งคืนฟิลด์ uom ภายใต้ size