$let (متغيرات محلية)

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

$let (متغيرات محلية)

يعرّف $let متغيرات محلية داخل تعبيرات التجميع لاستخدامها في تعبير in، متجنبًا التقييم المتكرر للتعبيرات الفرعية المعقدة. الصياغة { $let: { vars: { name: expression }, in: expression } }، مع الإشارة إلى المتغيرات بـ $$name. يُستخدم لحساب نتيجة وسيطة مرة واحدة وإعادة استخدامها، مثل تطبيق خصم ثم حساب السعر بعد الضريبة. منذ MongoDB 5.0، يقبل vars أيضًا صيغة مصفوفة [{ name: ..., value: ... }] تدعم أسماء متغيرات مسبوقة بـ $.

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

📝 الصيغة

{ $let: { vars: { <variable>: <expression> }, in: <expression> } }

⚙️ المعلمات

varsتعريفات المتغيرات، ككائن أو، منذ MongoDB 5.0، بصيغة مصفوفة.
inالتعبير الذي يستخدم المتغيرات، ويُشار إليها بـ $$name.

القيمة المرجعة:نتيجة تعبير in

▶ مثال

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

// $let: حساب سعر مخفض بمتغيرات محلية
db.orders.aggregate([
  { $project: {
      finalPrice: {
        $let: {
          vars: { base: '$price', discount: { $multiply: ['$price', 0.1] } },
          in: { $subtract: ['$$base', '$$discount'] }
        }
      }
  } }
])

المخرجات:

{ '_id': 1, 'finalPrice': 90 }
{ '_id': 2, 'finalPrice': 45 }

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qما فائدة $let؟
Aتعريف متغيرات محلية لإعادة استخدام النتائج الوسيطة بدل تكرار التعبيرات المعقدة.
Qكيف أشير إلى متغيرات $let؟
Aاستخدم $$name داخل تعبير in.
Qهل يمكن لمتغيرات $let التصادم مع متغيرات النظام؟
Aيظلل متغير $let متغير النظام الذي يحمل الاسم نفسه، فاختر الأسماء بعناية.
Web-Tutorial.com

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

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

100%