$isArray (التحقق مما إذا كانت القيمة مصفوفة)
آخر تحديث: 2026-10-09
$isArray (التحقق مما إذا كانت القيمة مصفوفة)
يُرجع $isArray قيمة منطقية تشير إلى ما إذا كان التعبير يُقيَّم إلى مصفوفة. يُستخدم كثيرًا داخل $cond للتفرع حسب النوع: عندما يكون الحقل إما قيمة قياسية أو مصفوفة، افحص أولًا ثم اختر مسار المعالجة. كما يحرس عوامل مثل $size أو $map التي تقبل المصفوفات فقط، مانعًا الأخطاء. وهو فحص نوع تعبيرات التجميع ويمكن دمجه مع $type لفحوصات أنواع BSON دقيقة. الحقل المفقود يُرجع false لا خطأً.
| الفئة | المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $isArray: <expression> }
⚙️ المعلمات
| تعبير | أي تعبير يُفحَص ناتجه من حيث كونه مصفوفة. |
|---|
القيمة المرجعة:قيمة منطقية: true عندما تكون النتيجة مصفوفة، وإلا false
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $isArray: الوسوم قد تكون سلسلة أو مصفوفة، احسبهما معًا
db.products.aggregate([
{ $project: {
tagCount: { $cond: { if: { $isArray: '$tags' }, then: { $size: '$tags' }, else: 1 } }
} }
])
المخرجات:
{ '_id': 1, 'tagCount': 3 }
{ '_id': 2, 'tagCount': 1 }
📌 ملاحظات
- الحقل المفقود يُرجع false لا خطأً
- المصفوفات المتداخلة (مصفوفات داخل مصفوفات) تُعدّ مصفوفات، لذا يُرجع $isArray true
- اجمعه مع $cond/$switch للتوزيع حسب النوع ولتجنب استدعاء $size على غير مصفوفات
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qماذا يُرجع $isArray عندما يكون الحقل مفقودًا؟
Aيُرجع false دون رمي خطأ، مما يجعله آمنًا كحارس.
Qهل يميّز $isArray سلسلة عن مصفوفة؟
Aنعم — السلاسل تُرجع false؛ ونوع BSON للمصفوفة فقط يُرجع true.
Qكيف أستخدمه مع $cond؟
Aضع $isArray في موضع if من $cond واكتب فرعين في then/else.