假设我在Mongoose中运行这个查询:

    Room.find({}, (err,docs) => {
    
    }).sort({date:-1}); 

这行不通!


当前回答

正确答案是:

Blah.find({}).sort({date: -1}).execFind(function(err,docs){

});

其他回答

您也可以根据_id字段进行排序。例如,要获取最近的记录,你可以这样做,

const mostRecentRecord = await db.collection.findOne().sort({ _id: -1 });

它也快得多,因为我更愿意打赌,您的日期字段没有索引。

看看这是否有助于>如何排序猫鼬?

也请阅读这个> http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order

这里所有的答案实际上都是正确的,但是我写我的答案是为了说明,如果你在模型中没有一个名为“date”的字段,或者你在创建模型时在选项中传递了选项:timestamps: true,那么有时写“-date”或date: -1将不起作用。如果你正在使用timestamps: true,那么你需要输入:sort({createdAt: -1}),这样就可以工作了。

ES6解决方案与Koa。

  async recent() {
    data = await ReadSchema.find({}, { sort: 'created_at' });
    ctx.body = data;
  }

正确答案是:

Blah.find({}).sort({date: -1}).execFind(function(err,docs){

});