2015-05-07 4 views

ответ

2

Возможным решением является добавление в документы дополнительного поля «размер», поскольку размер документа не часто изменяется.

Чтобы добавить размер для каждого документа:

db.collection.find().forEach(function(doc) { 
    doc.size = Object.bsonsize(doc); 
    db.collection.save(doc); 
}); 

Для сортировки в порядке убывания:

db.collection.find().sort({"size":-1}); 

Другим решением является загрузка всех документов в памяти, сортировать и распечатывать результаты с любым программированием язык (js, php, java ...), который не рекомендуется, если ваша коллекция большая.

+0

отличный ответ, спасибо. –

Смежные вопросы