اذهب إلى المحتوى
  • 0

ظهور الخطأ size must be an Array$ في mongodb

Tamim Fahed

السؤال

لدي مجموعة من المستندات وأحاول الحصول على مجموع عناصر مصفوفة بهيئة حقل جديد بشكل مشابه للتالي:

{ 
 "department": 1, 
 "Count employees" : {$size : "$employees" }
}

ولكن يظهر لي الخطأ التالي:

The argument to $size must be an Array, but was of type: EOO

فهل يوجد طريقة لوضع القيمة 0 في حال كان العنصر فارغاً وتجاهل الخطأ السابق؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك استخدام العامل ifNull هنا. يبدو أن الحقل إما أنه ليس مصفوفة أو غير موجود , يمكنك استخدامه كالتالي

{ 
 "department": 1, 
 "Count employees" : {"$size": { "$ifNull": [ "$"$employees"", [] ] } }
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

من MongoDB 3.2 والإصدارات الأحدث ، يمكنك استخدامه $isArray للتحقق مما إذا كان الحقل عبارة عن مصفوفة جنبًا إلى جنب مع $cond عامل التشغيل لإرجاع الحقل عند التقييم باستخدام $isArray:

{ "$project": {
    "people": 1,
    "myFieldArrayCount": { 
        "$size": { 
            "$cond": [ 
                { "$isArray": "$myFieldArray" }, 
                "$myFieldArray", 
                []
            ]
        } 
    }
}}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكن عدم السماح للوثيقة document أن تحمل قيم فارغة null باستخدام مايشبه الشرط التالي:

$match: {
	myFieldArray: { 
		$elemMatch: { $exists: true } 
		              ^^^^^^^^^^^^^ ضمان وجود قيمة للكائن
	}
}

ولتمرير قيمة خاصية عليك استخدام معامل المرجعية '$' كالتالي:

$project:
{ 
 "department": 1,
 "employees":1,
 "Count employees" : {$size : "$employees" }
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...