$unset (إزالة الحقول)
آخر تحديث: 2026-10-09
$unset (إزالة الحقول)
يزيل $unset الحقول المحددة من المستندات، مُبقيًا كل شيء آخر. وهو اختصار لـ { $project: { field: 0 } } ويمكنه إزالة عدة حقول دفعة واحدة، بما في ذلك المسارات المتداخلة عبر الترميز النقطي. مفيد لتنظيف الحقول الحساسة مثل كلمات المرور أو الرموز وإزالة الحقول الوسيطة.
| الفئة | المراحل الأساسية |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $unset: "<field>" } or { $unset: [ "<field1>", "<field2>" ] }
⚙️ المعلمات
| حقل | اسم حقل، أو مصفوفة أسماء حقول، المراد إزالتها. |
|---|
القيمة المرجعة:تدفق مستندات مع إزالة الحقول المحددة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $unset: إزالة الحقول الحساسة ورقم بطاقة متداخل
db.users.aggregate([
{ $unset: ['password', 'token', 'detail.card'] }
])
المخرجات:
// المستندات لم تعد تحمل password أو token أو detail.card
📌 ملاحظات
- مكافئ لـ $project بكل الأصفار
- المسارات النقطية تزيل الحقول الفرعية المضمنة
- استخدم الصيغة المصفوفية لإزالة عدة حقول دفعة واحدة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يمكن لـ $unset إزالة الحقول المضمنة؟
Aنعم، عبر مسارات نقطية مثل 'detail.card' لاستهداف حقل فرعي واحد.
Qكيف يختلف $unset عن حذف الحقول بـ $project؟
Aلا فرق حقيقي؛ $unset سكر نحوي لإسقاط الأصفار، وأنظف للعديد من الحقول.
Qماذا لو استهدف $unset حقلًا مفقودًا؟
Aلا خطأ؛ يمر المستند دون تغيير.