$subtract (الطرح)

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

$subtract (الطرح)

ينفذ $subtract عملية الطرح في تعبيرات التجميع، وهو النظير المقابل لـ $add. يأخذ وسيطتين بالضبط: رقم ناقص رقم يُرجع الفرق، وتاريخ ناقص تاريخ يُرجع ميلي ثانية، وتاريخ ناقص ميلي ثانية يُرجع تاريخًا أسبق. يُستخدم غالبًا في $project أو $set لحساب الفروق مثل السعر بعد الخصم أو الوقت المنقضي بين طابعين زمنيين. لاحظ أن $subtract يقبل وسيطتين فقط ولا يمكنه استيعاب عدة عوامل كما يفعل $add. أي وسيطة فارغة أو مفقودة تُنتج null.

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

📝 الصيغة

{ $subtract: [ <expression1>, <expression2> ] }

⚙️ المعلمات

المطروح منهقيمة رقمية أو تاريخ أو تعبير يُحلّ إلى أيٍّ منهما.
المطروحرقم (مللي ثانية) أو تعبير تاريخ يُطرح من المطروح منه.

القيمة المرجعة:الفرق الرقمي؛ تاريخ ناقص تاريخ يُرجع مللي ثانية؛ وتاريخ ناقص مللي ثانية يُرجع تاريخًا

▶ مثال

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

// $subtract: حساب السعر بعد الخصم
db.orders.aggregate([
  { $project: {
      finalPrice: { $subtract: ['$price', '$discount'] }
  } }
])

المخرجات:

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

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qهل يمكن لـ $subtract حساب فرق الأيام بين تاريخين؟
Aيُرجع ميلي ثانية؛ اقسم على 86400000 للأيام، أو استخدم $dateDiff مع وحدة اليوم.
Qكيف يرتبط $subtract بـ $add؟
Aإنهما معكوسان؛ $subtract يأخذ وسيطتين بينما يقبل $add عدة وسائط.
Qماذا يعطي التاريخ ناقص ميلي ثانية؟
Aتاريخًا أسبق؛ مثلًا، طرح 86400000 من تاريخ طلب يعطي اليوم السابق.
Web-Tutorial.com

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

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

100%