icCube के साथ एक मोंगोडीबी डेटा स्रोत बनाने की कोशिश कर रहा है। विचार एक सरणी के आकार को एक नए क्षेत्र के रूप में वापस करना है। कुछ की तरह:
$project:
{
"people": 1,
"Count myFieldArray" : {$size : "$myFieldArray" }
}
लेकिन मैं कुछ रिकॉर्ड के लिए निम्न त्रुटि हो रही है:
The argument to $size must be an Array, but was of type: EOO
वहाँ एक रास्ता है कि आकार 0 यदि फ़ील्ड रिक्त है या नहीं एक सरणी है (हो रही से छुटकारा है त्रुटि) ?
धन्यवाद यह बहुत काम करता है। अजीब है कि एक अपरिभाषित क्षेत्र का $ आकार 0 नहीं है (वास्तव में सभी सभी सरणी प्रकारों के लिए 0)। मैं उम्मीद करता हूं कि एक nonsql डीबी अधिक उदार होने के लिए (यदि एक मोंगो डीबी लड़का यह पढ़ता है :-)) – ic3
@ ic3 वास्तव में नहीं, और यही कारण है कि '$ ifNull' मौजूद है। वही चेतावनी ऑपरेटरों पर लागू होती है जैसे '$ unwind' जहां आपको सावधान रहना होगा कि सरणी खाली नहीं है या गायब है अन्यथा आप या तो मूल दस्तावेज़ को हटाने या समान त्रुटि उत्पन्न करने का परिणाम देंगे। –