$toObjectId (التحويل إلى ObjectId)

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

$toObjectId (التحويل إلى ObjectId)

يحوّل $toObjectId سلسلة سداسية عشرية من 24 حرفًا إلى ObjectId، التحويل الأكثر شيوعًا لعمليات الربط. الاستخدامات النموذجية: تحويل سلاسل المعرّفات المستوردة من CSV أو API إلى ObjectId لـ $lookup، أو مقارنة قيم _id النصية مع ObjectId في $match. يجب أن تكون السلسلة صيغة ObjectId صالحة وإلا رُمي خطأ؛ ويبقى null null. فضّل $convert مع onError لحماية المدخلات غير الصالحة.

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

📝 الصيغة

{ $toObjectId: <expression> }

⚙️ المعلمات

تعبيرنص سادس عشري مكوَّن من 24 حرفًا.

القيمة المرجعة:قيمة ObjectId؛ null عندما يكون الإدخال null

▶ مثال

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

// $toObjectId: تحويل معرّف نصي للربط
db.orders.aggregate([
  { $project: {
      uid: { $toObjectId: '$userIdStr' }
  } }
])

المخرجات:

{ '_id': 1, 'uid': { '$oid': '64b7f1c2e4b0a1b2c3d4e5f6' } }

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qماذا يحدث مع سلسلة غير صالحة؟
Aيُسبب خطأً؛ و $convert onError يُرجع بديلًا بدل ذلك.
Qلماذا يفشل $lookup في المطابقة؟
Aعادةً اختلاف أنواع — أحد الطرفين سلسلة والآخر ObjectId؛ وحّد بـ $toObjectId أولًا.
Qماذا عن سلسلة فارغة؟
Aيُسبب خطأً لا null؛ عالجها بـ $ifNull أولًا.
Web-Tutorial.com

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

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

100%