Мислех, че може да успеете да използвате $size
, но това е само за намиране на масиви с определен размер, а не за подреждане.
От документацията на mongo: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
}