$replaceWith (الاستبدال بـ)

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

$replaceWith (الاستبدال بـ)

$replaceWith مثل $replaceRoot لكنه يتحمل نتائج null أو المفقودة، مُبقيًا المستند الأصلي بدلًا من الفشل. يناسب سيناريوهات الرفع-عند-الإمكان. كل شيء آخر يطابق دلالات $replaceRoot.

الفئةالمراحل الأساسية
إصدار MongoDB4.2+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $replaceWith: <document expression> }

⚙️ المعلمات

تعبير مستندتعبير يستبدل ناتجه المستند؛ وقد يكون null أو مفقودًا.

القيمة المرجعة:تدفق مستندات مستبدَل (يُحتفظ بالأصلي عندما تكون النتيجة null)

▶ مثال

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

// $replaceWith: رفع detail عندما يكون موجودًا
db.orders.aggregate([
  { $replaceWith: '$detail' }
])

المخرجات:

// الطلبات التي لديها detail تُخرجه؛ وغيرها تمر دون تغيير

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qما الفرق بين $replaceWith و $replaceRoot؟
Aيصدر $replaceWith المستند الأصلي عندما تكون النتيجة null؛ بينما يرمي $replaceRoot خطأ.
Qكيف أدمج عدة حقول في مستند جديد؟
Aاجمعه مع $mergeObjects، مثل { $replaceWith: { $mergeObjects: ['$a', '$b'] } }.
Qهل يُبقي $replaceWith _id؟
Aلا، ما لم يتضمن التعبير _id صراحة.
Web-Tutorial.com

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

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

100%