Answers:
在发行版本中,按猫鼬排序已得到发展,因此其中某些答案不再有效。从Mongoose 的4.1.x版本开始,date
可以通过以下任何一种方式对字段进行降序排序:
Room.find({}).sort('-date').exec(function(err, docs) { ... });
Room.find({}).sort({date: -1}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'desc'}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'descending'}).exec(function(err, docs) { ... });
Room.find({}).sort([['date', -1]]).exec(function(err, docs) { ... });
Room.find({}, null, {sort: '-date'}, function(err, docs) { ... });
Room.find({}, null, {sort: {date: -1}}, function(err, docs) { ... });
对于升序排序,省略了-
对字符串版本或使用值的前缀1
,asc
或ascending
。
find
文档中查看错误的方法。请参阅Model.find
。
Module#property
符号并进行搜索#find
。似乎没有简单的方法可以浏览或搜索文档。搜索find产生187个结果。
_id
字段排序。例如,要获取最新记录,您可以执行以下操作:await db.collection.findOne().sort({ _id: -1 });
正确答案是:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
今天一直使用Mongoose 3.5(.2)处理此问题,没有一个答案可以帮助我解决此问题。以下代码片段可以解决问题
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
您可以发送所需的任何标准参数 find()
(例如where子句和return字段),但不发送回调。如果没有回调,它将返回您链接的Query对象sort()
。您需要find()
再次调用(带有或不带有更多参数-出于效率原因不需要任何参数),这将允许您在回调中获取结果集。
我这样做:
Data.find( { $query: { user: req.user }, $orderby: { dateAdded: -1 } } function ( results ) {
...
})
这将首先显示最新的信息。
$orderby
在MongoDB 3.2中已弃用,因此不应再使用。
Post.find().sort({date:-1}, function(err, posts){
});
应该也可以
编辑:
如果出现错误,也可以尝试使用此方法sort() only takes 1 Argument
:
Post.find({}, {
'_id': 0, // select keys to return here
}, {sort: '-date'}, function(err, posts) {
// use it here
});
Error: sort() only takes 1 Argument
Post.find({}, {'_id': 0}).sort("-date").function(err, posts){});
看看这是否有帮助> 如何对猫鼬进行排序?
另请阅读此内容> http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order
Query#find([criteria], [callback])
。我以为可能有一些秘密握手,说“条件”最多可以包含三个参数,但是将类型列为“对象”。