10 ответов:
просто небольшая модификация @JohnnyHK answer
collection.find().sort({datefield: -1}, function(err, cursor){...});во многих случаях использования мы хотим, чтобы последние записи были возвращены (например, для последних обновлений / вставок).
сортировка по дате не требует ничего особенного. Просто отсортируйте по нужному полю даты коллекции.
обновлено для узла 1.4.28.JS родной драйвер, вы можете сортировать по возрастанию на
datefieldиспользуя любой из следующих способов:collection.find().sort({datefield: 1}).toArray(function(err, docs) {...}); collection.find().sort('datefield', 1).toArray(function(err, docs) {...}); collection.find().sort([['datefield', 1]]).toArray(function(err, docs) {...}); collection.find({}, {sort: {datefield: 1}}).toArray(function(err, docs) {...}); collection.find({}, {sort: [['datefield', 1]]}).toArray(function(err, docs) {...});
'asc'или'ascending'также может использоваться вместо1.для сортировки по убыванию используйте
'desc','descending'или-1вместо1.
ответы Сушанта Гупты немного устарели и больше не работают.
следующий фрагмент должен быть таким:
collection.find({}, {"sort" : ['datefield', 'asc']} ).toArray(function(err,docs) {});
это сработало для меня:
collection.find({}, {"sort" : [['datefield', 'asc']]}, function (err, docs) { ... });Через Узел.Яш, Экспресс.js, и Monk
db.getCollection('').find({}).sort({_id:-1})это будет сортировать вашу коллекцию в порядке убывания на основе даты вставки
collection.find().sort('date':1).exec(function(err, doc) {});это работает для меня
referred https://docs.mongodb.org/getting-started/node/query/
с Мангустом это так же просто, как:
collection.find().sort('-date').exec(function(err, collectionItems) { // here's your code })
Дополнительные Площади [ ] скобка требуется для сортировки параметра для работы.
collection.find({}, {"sort" : [['datefield', 'asc']]} ).toArray(function(err,docs) {});
Если ваш формат даты выглядит следующим образом : 14/02/1989 ----> вы можете найти некоторые проблемы
вы должны использовать ISOdate следующим образом:
var start_date = new Date(2012, 07, x, x, x);- - - - - > результат - - - - - - >ISODate ("2012-07-14T08:14: 00.201 Z")
теперь просто используйте запрос следующим образом:
collection.find( { query : query ,$orderby :{start_date : -1}} ,function (err, cursor) {...}вот именно :)
с Мангустом я не смог использовать 'toArray', и получал ошибку:
TypeError: Collection.find(...).sort(...).toArray is not a function.Функция toArray существует в классе курсора из собственного драйвера MongoDB NodeJS (ссылка).также сортировка принимает только один параметр, поэтому вы не можете передать свою функцию внутри него.
это сработало для меня (как ответил Эмиль):
collection.find().sort('-date').exec(function(error, result) { // Your code })
Comments