$nor (العامل المنطقي NOR)
آخر تحديث: 2026-10-09
$nor (العامل المنطقي NOR)
يجمع $nor المسندات؛ يطابق المستند فقط عندما لا يتحقق أي منها. فالعبارة `{ $nor: [ { price: 1.99 }, { sale: true } ] }` تطابق المنتجات التي ليست بسعر 1.99 دولارًا وليست في عرض بيع — وهو عكس $or. مأزق: الحقل المفقود يفشل في كل شرط، لذا يتضمن $nor بصمت المستندات التي تفتقد الحقول.
| الفئة | المنطقي |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $nor: [ { <condition1> }, { <condition2> }, ... ] }
⚙️ المعلمات
| مصفوفة شروط | مصفوفة من شروط الاستعلام؛ ويجب ألا يتحقق أيٌّ منها. |
|---|
القيمة المرجعة:مؤشر المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $nor: السعر ليس 1.99 وليس في عرض بيع
db.products.find({
$nor: [
{ price: 1.99 },
{ sale: true }
]
})
المخرجات:
// يُرجع المنتجات التي ليست بسعر 1.99 دولارًا ولا في عرض بيع؛ لاحظ أن المستندات التي تفتقد حقل sale تُطابق أيضًا
📌 ملاحظات
- الحقل المفقود يفشل في كل شرط، لذا يتضمن $nor المستندات ذات الحقل المفقود (مأزق كلاسيكي)
- لاستبعاد الحقول المفقودة، أضف $exists: true إلى كل شرط
- $nor ينفي عدة مسندات؛ بينما ينفي $not عامل حقل واحد
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
أساسيات الاستعلام عن المستندات: طريقة `find` وعمليات الإسقاط
مشغلات الاستعلام: دليل شامل لأكثر من 30 مشغلًا
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين $nor و $not؟
Aيتطلب $nor ألا يتحقق أي من عدة مسندات؛ بينما ينفي $not تعبير عامل واحدًا.
Qلماذا يُرجع $nor المستندات التي يكون الحقل فيها مفقودًا؟
Aالحقل المفقود لا يحقق أي شرط، ويتطلب $nor ألا يتحقق أي شرط — لذا تُضمَّن تلك المستندات.
Qهل يمكن لـ $nor أن يحتوي $or؟
Aنعم، يمكن أن يكون كل عنصر داخل $nor مسندًا معقدًا.