$setIsSubset (التحقق من علاقة المجموعة الجزئية)
آخر تحديث: 2026-10-09
$setIsSubset (التحقق من علاقة المجموعة الجزئية)
يتحقق $setIsSubset مما إذا كان كل عنصر من المصفوفة الأولى يظهر أيضًا في الثانية — أي ما إذا كانت المجموعة الأولى مجموعة جزئية من الثانية. الاستخدامات النموذجية: التحقق من أن صلاحيات المستخدم تغطي كل الصلاحيات التي تتطلبها عملية، أو أن الوسوم المختارة تنتمي كلها إلى قائمة مسموحة. المصفوفة الأولى الفارغة تُرجع true؛ والمصفوفة الثانية الفارغة مع الأولى غير الفارغة تُرجع false. تُتجاهل عناصر null.
| الفئة | المجموعة والشرط والتحويل |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $setIsSubset: [ <arrayA>, <arrayB> ] }
⚙️ المعلمات
| مصفوفة A | المجموعة الفرعية المرشَّحة. |
|---|---|
| مصفوفة B | المجموعة الشاملة. |
القيمة المرجعة:true عندما يكون كل عنصر في A موجودًا في B، وإلا false
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $setIsSubset: هل كل الصلاحيات المختارة مسموحة
db.roles.aggregate([
{ $project: {
ok: { $setIsSubset: ['$selected', '$allowed'] }
} }
])
المخرجات:
{ '_id': 1, 'ok': true }
📌 ملاحظات
- المصفوفة الفارغة مجموعة جزئية من كل مجموعة، تُرجع true
- المجموعة الفائقة الفارغة مع مرشح غير فارغ تُرجع false
- تُتجاهل عناصر null
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qماذا تُرجع المصفوفة الأولى الفارغة؟
Atrue — المجموعة الفارغة مجموعة جزئية من كل مجموعة.
Qكيف يختلف عن $setEquals؟
A$setIsSubset يتحقق من الاحتواء في اتجاه واحد؛ و $setEquals يتحقق من المساواة في الاتجاهين.
Qهل يؤثر الترتيب في النتيجة؟
Aلا — دلالات المجموعات تتجاهل الترتيب.