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