根据objectId获取n个最近的文档

Get n most recent documents based on objectId

我想知道是否有一种方法可以根据对象 ID 中的日期组件对结果集进行排序

myCol.find().sort('_id descending').limit(5).select('title _id').exec(function(e, data){
     res.render('some-page.html',{data:data});
});

我的文档中没有明确的日期字段,但我的理解是 objectId 已经包含一个日期组件,所以我想知道我是否可以在这里利用它。

以上代码不会正确排序结果集

编辑: 通过稍微更新查询,我让它工作了

myCol.find().sort([['_id', -1]])

来源:uses for mongodb ObjectId creation time

使用 Mongoose 进行降序排序的最简单方法是在您的调用中为字段名称添加前缀,因此 sort 带有 -:

myCol.find()
     .sort('-_id')
     .limit(5)
     .select('title _id')
     .exec(function(e, data){
         res.render('some-page.html',{data:data});
     });