$replaceAll (استبدال كل التطابقات)

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

$replaceAll (استبدال كل التطابقات)

يستبدل $replaceAll كل ظهور لسلسلة فرعية بسلسلة معينة — مثالي لتنظيف البيانات الجماعي أو توحيد المحددات. يجب أن يكون find غير فارغ وإلا رُمي خطأ؛ وعند غيابه تُعاد السلسلة المدخلة دون تغيير. وهو استبدال لفظي، ويختلف عن $replaceOne في استبدال الكل بدل الأول. استخدم $regexReplace لمطابقة الأنماط. المدخل الفارغ أو المفقود يُرجع null.

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

📝 الصيغة

{ $replaceAll: { input: <string-expression>, find: <find>, replacement: <replacement> } }

⚙️ المعلمات

inputمطلوب؛ النص المراد معالجته.
findمطلوب؛ نص بحث غير فارغ.
replacementمطلوب؛ نص الاستبدال.

القيمة المرجعة:النص المستبدَل؛ null إذا كان الإدخال null.

▶ مثال

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

// $replaceAll: إزالة كل الشرطات من أرقام الهواتف
db.users.aggregate([
  { $project: { clean: { $replaceAll: { input: '$phone', find: '-', replacement: '' } } } }
])

المخرجات:

{ "_id": 1, "clean": "13800138000" }
{ "_id": 2, "clean": "13900139000" }

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qما الفرق عن $replaceOne؟
A$replaceOne يستبدل الأول؛ و $replaceAll يستبدل كل ظهور.
Qهل يعمل مع التعبيرات النمطية؟
Aلا — استخدم $regexReplace للتعبيرات النمطية.
Qهل يمكن أن يكون البديل فارغًا؟
Aنعم — يحذف كل ظهورات find.
Web-Tutorial.com

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

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

100%