मुझे लगा कि आप $size
. का उपयोग करने में सक्षम हो सकते हैं , लेकिन यह केवल एक निश्चित आकार के सरणियों को खोजने के लिए है, क्रम देने के लिए नहीं।
मोंगो प्रलेखन से:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24size
<ब्लॉकक्वॉट>आप आकार की श्रेणी खोजने के लिए $size का उपयोग नहीं कर सकते (उदाहरण के लिए:1 से अधिक तत्व वाले सरणियाँ)। यदि आपको किसी श्रेणी के लिए क्वेरी करने की आवश्यकता है, तो एक अतिरिक्त आकार फ़ील्ड बनाएं जिसे आप तत्व जोड़ते समय बढ़ाते हैं। किसी क्वेरी के $size हिस्से के लिए इंडेक्स का उपयोग नहीं किया जा सकता है, हालांकि अगर अन्य क्वेरी एक्सप्रेशन शामिल हैं तो इंडेक्स का उपयोग क्वेरी एक्सप्रेशन के उस हिस्से पर मिलान खोजने के लिए किया जा सकता है।
ऐसा लगता है कि आप शायद इसे नए एकत्रीकरण ढांचे के साथ काफी आसानी से कर सकते हैं, संपादित करें: जो अभी तक नहीं आया है।http://www.mongodb.org/display/DOCS/Aggregation+Framework
अपडेट करें अब एग्रीगेशन फ्रेमवर्क समाप्त हो गया है...
> db.test.aggregate([
{$unwind: "$answers"},
{$group: {_id:"$_id", answers: {$push:"$answers"}, size: {$sum:1}}},
{$sort:{size:1}}]);
{
"result" : [
{
"_id" : ObjectId("5053b4547d820880c3469365"),
"answers" : [
{
"content" : "answer1"
},
{
"content" : "2nd answer"
}
],
"size" : 2
},
{
"_id" : ObjectId("5053b46d7d820880c3469366"),
"answers" : [
{
"content" : "answer1"
},
{
"content" : "2nd answer"
},
{
"content" : "The third answer"
}
],
"size" : 3
}
],
"ok" : 1
}