$convert (تحويل الأنواع)

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

$convert (تحويل الأنواع)

يحوّل $convert قيمة إلى نوع BSON مستهدف وهو نقطة الدخول الرئيسية لتحويلات الأنواع. يقبل المعامل to أنواع double و string و objectId و bool و date و int و long و decimal. فشل التحويل يُسبب خطأً افتراضيًا، لكن onError يوفّر بديلًا؛ والمدخل الفارغ يُرجع null افتراضيًا ويتجاوز onNull ذلك. الاستخدامات النموذجية: تحويل سلاسل رقمية إلى أرقام للحسابات أو تحليل سلاسل التواريخ إلى تواريخ. مقارنةً بالمختصرات مثل $toInt، يضيف $convert معالجة الفشل.

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

📝 الصيغة

{ $convert: { input: <expression>, to: <type>, onError: <fallback>, onNull: <nullResult> } }

⚙️ المعلمات

inputالقيمة المراد تحويلها.
toالنوع الهدف: ‏double/string/objectId/bool/date/int/long/decimal.
onErrorقيمة اختيارية تُرجَع عند فشل التحويل.
onNullقيمة اختيارية تُرجَع عندما يكون الإدخال null أو مفقودًا.

القيمة المرجعة:القيمة المحوَّلة؛ يُطبَّق onError/onNull عند الفشل أو null

▶ مثال

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

// $convert: تحليل سعر نصي إلى رقم، البديل 0
db.products.aggregate([
  { $project: {
      priceNum: { $convert: { input: '$priceStr', to: 'double', onError: 0 } }
  } }
])

المخرجات:

{ '_id': 1, 'priceNum': 19.9 }
{ '_id': 2, 'priceNum': 0 }

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qماذا يحدث عندما يفشل $convert؟
Aيُسبب خطأً ويوقف خط الأنابيب؛ ومع onError يُرجع البديل.
Qكيف يختلف عن $toInt؟
A$toInt اختصار لـ $convert؛ و $convert يضيف معالجة onError/onNull.
Qأي الأنواع يقبل to؟
Adouble و string و objectId و bool و date و int و long و decimal.
Web-Tutorial.com

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

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

100%