$rename (إعادة تسمية الحقل)
آخر تحديث: 2026-10-09
$rename (إعادة تسمية الحقل)
يعيد $rename تسمية حقل. `{ $rename: { 'oldName': 'newName' } }`، مع مسارات نقطية للحقول المتداخلة. إذا كان الاسم الجديد موجودًا بالفعل، تستبدله القيمة القديمة؛ وإلا يُنشأ الحقل. لا يعيد $rename تسمية الحقول داخل عناصر المصفوفات، ونقل حقل متداخل لا ينشئ مستندات وسيطة.
| الفئة | تحديث الحقل |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $rename: { <old field name>: <new field name> } }
⚙️ المعلمات
| اسم الحقل القديم | اسم الحقل المصدر. |
|---|---|
| اسم الحقل الجديد | اسم الحقل الهدف؛ المسارات المنقوطة مسموحة. |
القيمة المرجعة:نتيجة التحديث
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $rename: إعادة تسمية username إلى handle
// يُتجاهل إذا كان الحقل مفقودًا
db.users.updateOne(
{ _id: 1 },
{ $rename: { username: 'handle' } }
)
// إعادة تسمية حقل متداخل
db.users.updateOne(
{ _id: 1 },
{ $rename: { 'profile.city': 'profile.cityName' } }
)
المخرجات:
// يصبح username هو handle؛ وprofile.city يصبح profile.cityName
📌 ملاحظات
- الحقل الموجود بالاسم الجديد يُستبدل بالقيمة القديمة
- الحقول داخل عناصر المصفوفات لا يُعاد تسميتها
- يُتجاهل بصمت عندما يكون الحقل المصدر مفقودًا
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يمكن لـ $rename إعادة تسمية الحقول المتداخلة؟
Aنعم، عبر مسارات نقطية مثل 'profile.city'.
Qماذا يحدث إذا كان اسم الحقل الجديد موجودًا بالفعل؟
Aتستبدل القيمة القديمة الحقل الجديد الموجود.
Qهل يتعامل $rename مع الحقول داخل المصفوفات؟
Aلا، الحقول داخل عناصر المصفوفات تحتاج تحديثات لكل عنصر.