نظرة عامة على الفصل

يقدم هذا الفصل كيفية ضبط إرجاع الحقول المحددة في استعلامات MongoDB بدلاً من إرجاع جميع بيانات الحقول.

بيانات الاختبار

أدخل بعض البيانات إلى مجموعة الجرد

db.inventory.insertMany( [
  { item: "مذكرة", status: "A", size: { h: 14, w: 21, uom: "سم" }, instock: [ { warehouse: "A", qty: 5 } ] },
  { item: "دفتر", status: "A", size: { h: 8.5, w: 11, uom: "بوصة" }, instock: [ { warehouse: "C", qty: 5 } ] },
  { item: "ورق", status: "D", size: { h: 8.5, w: 11, uom: "بوصة" }, instock: [ { warehouse: "A", qty: 60 } ] },
  { item: "مخطط", status: "D", size: { h: 22.85, w: 30, uom: "سم" }, instock: [ { warehouse: "A", qty: 40 } ] },
  { item: "بريد مصور", status: "A", size: { h: 10, w: 15.25, uom: "سم" }, instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);

التنسيق

{<field>: 1 أو 0}

الشرح:

  • - اسم الحقل
  • 1 يمثل إرجاع الحقل، 0 يمثل استبعاد الحقل (أي عدم الإرجاع)

نصيحة: استخدام قيم صحيح/خطأ بدلاً من 1 و 0 مقبول أيضًا.

إرجاع الحقول المحددة

ضبط أي الحقول لإرجاعها عبر المعامل الثاني لدالة البحث.

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

الشرح:

  • يتم الاستعلام عن الوثائق التي توفي شرط الحالة بأ.
  • يتم إرجاع حقول _id وitem وstatus.

نصيحة: يتم إرجاع الحقل _id افتراضيًا.

مكافئ SQL:

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

استبعاد الحقول المحددة

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

الشرح:

  • يتم الاستعلام عن الوثائق التي توفي شرط الحالة بأ.
  • يتم إرجاع جميع البيانات ما عدا حقول الوثيقة item وstatus.

إرجاع الحقول المحددة في الوثائق مضمنة

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

الشرح:

  • يمثل size.uom إرجاع حقل uom تحت size.