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