$getField (الحصول على حقل بالاسم)

آخر تحديث: 2026-10-09

$getField (الحصول على حقل بالاسم)

يجلب $getField حقلًا باسمه الحرفي من مستند، دون تحليل الاسم كمسار حقل حتى لو بدأ بـ $ أو احتوى أحرفًا خاصة. الصياغة { $getField: { field: field-name, input: document } }، مع افتراض input بـ $$CURRENT. يُستخدم لأسماء الحقول الديناميكية أو الأسماء ذات الأحرف الخاصة. الحقل المفقود يُرجع null. مقارنةً بكتابة '$field' مباشرة، $getField أكثر مرونة لكنه أكثر إسهابًا.

الفئةالحرفي والمتغير والكائن
إصدار MongoDB5.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $getField: { field: <field-name>, input: <document-expression> } }

⚙️ المعلمات

fieldاسم الحقل كنص أو تعبير يُحلّ إلى نص.
inputمستند الهدف اختياري؛ الافتراضي هو $$CURRENT.

القيمة المرجعة:قيمة الحقل؛ null عندما يكون الحقل مفقودًا أو الإدخال null

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $getField: جلب حقل بالاسم من المستند الحالي
db.orders.aggregate([
  { $project: {
      price: { $getField: { field: 'price', input: '$$CURRENT' } }
  } }
])

المخرجات:

{ '_id': 1, 'price': 199 }
{ '_id': 2, 'price': 59 }

📌 ملاحظات

مزيد من الحالات العملية قريبًا.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qكيف يختلف $getField عن كتابة $field مباشرة؟
Aتُحلل المسارات المباشرة للنقاط و $، بينما يبحث $getField عن الاسم الحرفي ويدعم الأحرف الخاصة والأسماء الديناميكية.
Qهل يمكن لـ $getField جلب أسماء تحتوي نقاطًا؟
Aنعم، يُعامل الاسم حرفيًا ولا يُقسم إلى مسارات متداخلة.
Qماذا يحدث عند حذف input من $getField؟
Aيُعرّف افتراضيًا على $$CURRENT، المستند الحالي.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%