$all (يحتوي على الكل)
آخر تحديث: 2026-10-09
$all (يحتوي على الكل)
يطابق $all المستندات التي يحتوي حقل مصفوفتها على كل عنصر من المصفوفة المعطاة. فالعبارة `{ tags: { $all: ['mongodb', 'database'] } }` تتطلب أن تتضمن tags القيمتين معًا، بأي ترتيب. وعلى خلاف $in (أي مطابقة)، يتطلب $all كل القيم — مثالي لتصفية الوسوم الإلزامية.
| الفئة | المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ <field>: { $all: [ <value1>, <value2>, ... ] } }
⚙️ المعلمات
| حقل | حقل المصفوفة المراد مطابقته. |
|---|---|
| مصفوفة قيم | قائمة القيم التي يجب أن تكون جميعها موجودة. |
القيمة المرجعة:مؤشر المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $all: تتضمن tags كلمتي mongodb و database
db.articles.find({ tags: { $all: ['mongodb', 'database'] } })
// $in للمقارنة: يطابق أيًا من الوسمين
db.articles.find({ tags: { $in: ['mongodb', 'database'] } })
المخرجات:
// الاستعلام الأول يتطلب الوسمين معًا؛ والثاني يطابق أيًا منهما
📌 ملاحظات
- الترتيب غير مهم: ['mongodb', 'database'] يساوي العكس
- $all يعني يجب أن يحتوي الكل، و$in يعني أي مطابقة
- $all: [] يطابق كل مستند، بما في ذلك المستندات التي يفتقد حقلها
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين $all و $in؟
Aيطابق $in إذا ظهرت أي قيمة؛ بينما يتطلب $all وجود كل قيمة مدرجة.
Qهل يعمل $all على الحقول غير المصفوفية؟
Aعلى الحقول غير المصفوفية يتصرف $all مثل $eq (مقارنة قيمة مفردة).
Qماذا يحدث مع مصفوفة $all فارغة؟
A$all: [] يطابق كل المستندات، بما في ذلك المستندات التي يفتقد حقلها.