我将MongoDB与Node.JS结合使用。我有一个包含日期和其他行的集合。日期是一个JavaScript Date
对象。
如何按日期排序此收藏集?
date
列:stackoverflow.com/questions/5125521/…–
我将MongoDB与Node.JS结合使用。我有一个包含日期和其他行的集合。日期是一个JavaScript Date
对象。
如何按日期排序此收藏集?
date
列:stackoverflow.com/questions/5125521/…–
Answers:
只需对@JohnnyHK答案进行一些修改
collection.find().sort({datefield: -1}, function(err, cursor){...});
在许多用例中,我们希望返回最新记录(例如最新更新/插入)。
Date
在2.6.3 上,仅尝试对不具有函数的对象进行排序对我不起作用。
collection.find().sort(...).exec(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
。
db.getCollection('').find({}).sort({_id:-1})
这将根据插入日期以降序对集合进行排序
collection.find().sort('date':1).exec(function(err, doc) {});
这对我有用
使用mongoose时,我无法使用'toArray',并收到错误消息:TypeError: Collection.find(...).sort(...).toArray is not a function.
本机MongoDB NodeJS驱动程序(参考)的Cursor类上存在toArray函数。
同时sort只接受一个参数,因此您不能在其中传递函数。
collection.find().sort('-date').exec(function(error, result) {
// Your code
})