Я использую MongoDB с Node.JS. У меня есть коллекция, которая содержит дату и другие строки. Дата - это объект JavaScript Date
.
Как я могу сортировать эту коллекцию по дате?
Я использую MongoDB с Node.JS. У меня есть коллекция, которая содержит дату и другие строки. Дата - это объект JavaScript Date
.
Как я могу сортировать эту коллекцию по дате?
Просто небольшая модификация ответа @JohnnyHK
collection.find().sort({datefield: -1}, function(err, cursor){...});
Во многих случаях мы хотим, чтобы последние записи были возвращены (например, для последних обновлений/вставок).
Сортировка по дате не требует ничего особенного. Просто выберите нужное поле даты коллекции.
Обновлен для встроенного драйвера 1.4.28 node.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
.
Ответы Sushant Gupta немного устарели и больше не работают.
Следующий фрагмент должен выглядеть следующим образом:
collection.find({}, {"sort" : ['datefield', 'asc']} ).toArray(function(err,docs) {});
Это сработало для меня:
collection.find({}, {"sort" : [['datefield', 'asc']]}, function (err, docs) { ... });
Используя Node.js, Express.js и Monk
collection.find().sort('date':1).exec(function(err, doc) {});
это сработало для меня
указано https://docs.mongodb.org/getting-started/node/query/
Дополнительная площадь [] Для работы параметра сортировки требуется скобка.
collection.find({}, {"sort" : [['datefield', 'asc']]} ).toArray(function(err,docs) {});
С мангуста это просто:
collection.find().sort('-date').exec(function(err, collectionItems) {
// here your code
})
db.getCollection('').find({}).sort({_id:-1})
Это сортирует вашу коллекцию в порядке убывания в зависимости от даты вставки
если ваш формат даты выглядит следующим образом: 14/02/1989 ---- > вы можете найти некоторые проблемы
вам нужно использовать ISOdate следующим образом:
var start_date = new Date(2012, 07, x, x, x);
----- > Результат ------ > ISODate ( "2012-07-14T08: 14: 00.201Z" )
теперь просто используйте запрос следующим образом:
collection.find( { query : query ,$orderby :{start_date : -1}} ,function (err, cursor) {...}
что он:)