$ne (عدم المساواة)
آخر تحديث: 2026-10-09
$ne (عدم المساواة)
يقوم $ne باختيار المستندات التي لا تساوي قيمة حقلها قيمة محددة — وهو نفي $eq. فالعبارة `{ age: { $ne: 18 } }` تطابق كل المستندات التي لا يكون عمرها 18. ومثل $eq فهو حساس للنوع، وبشكل غير بديهي لا يطابق المستندات التي يكون الحقل فيها مفقودًا.
| الفئة | المقارنة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ <field>: { $ne: <value> } }
⚙️ المعلمات
| حقل | حقل المستند المراد مطابقته. |
|---|---|
| قيمة | القيمة المراد استبعادها. |
القيمة المرجعة:مؤشر المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $ne: استبعاد المستندات التي عمرها 18
db.users.find({ age: { $ne: 18 } })
المخرجات:
// يُرجع المستندات التي لا يكون عمرها 18 (تُستبعد المستندات ذات الحقل المفقود)
📌 ملاحظات
- لا يطابق المستندات التي يكون الحقل فيها مفقودًا؛ ادمجه مع $exists: true لتضمينها
- مع المصفوفات، يطابق إذا كان أي عنصر لا يساوي القيمة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يطابق $ne المستندات التي لا يحتوي حقلها على قيمة؟
Aلا. يطابق $ne فقط المستندات التي يوجد فيها الحقل وتختلف قيمته. لتضمين الحقول المفقودة، أضف $exists: true.
Qما الفرق بين $ne و $not: { $eq: ... }؟
Aبالنسبة للحقول العددية تكون النتائج متطابقة. أما مع المصفوفات، فيطابق $ne إذا اختلف أي عنصر، بينما يتطلب $not: { $eq } ألا يساوي أي عنصر القيمة، وهو أكثر تشددًا.
Qهل يمكن لـ $ne مطابقة قيمة null؟
Aنعم. يستبعد $ne: null المستندات التي تكون قيمتها null، لكن المستندات التي يكون حقلها مفقودًا تُعامل كقيمة غير مساوية فتُطابق، لذا ادمج مع $exists عند الحاجة.