Кроме того, я не вижу никаких причин для этого (индекс на поле, на котором вы собираетесь сортировать это поможет вам получить этот вид быстро), вот это решение для вашей проблемы:
You есть ваша коллекция тест таким образом
{ "_id" : ObjectId("5273f6987c6c502364ddfe94"), "n" : 5 }
{ "_id" : ObjectId("5273f6e57c6c502364ddfe95"), "n" : 14}
{ "_id" : ObjectId("5273f6ee7c6c502364ddfe96"), "n" : -5}
Тогда следующая команда создаст отсортированный коллекцию для вас
db.test.find().sort({n : 1}).forEach(function(e){
db.testSorted.insert(e);
})
совершенно таким же образом, вы можете достичь с помощью этого (Который я предполагаю, мог бы выполнить быстрее, но я не сделал каких-либо испытаний):
db.testSorted.insert(db.test.find().sort({n : 1}).toArray());
И чтобы этот ответ полным, и я понимаю, что это перебор, вы можете сделать это с aggregation framework option $out.
Просто выделите: со всем этим вы можете решить большую проблему: сохранить в другую коллекцию какую-то модификацию/подмножество предыдущей коллекции.
Вы можете использовать orderby для сортировки своей коллекции – LHH
Есть ли у вас конкретная причина? Для сохраненных документов нет неотъемлемого «заказа». Если вы хотите сортировать конкретное поле часто, то создайте для него индекс. –
@rubyist, то же самое, что и делать sort(). То, что он спрашивает, - это если есть способ сортировки навсегда сортировки документов заказов, хранящихся в коллекции, что не так. –