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