繁体   English   中英

获取 MongoDB 集合中的最后一个文档

[英]Get last document in MongoDB collection

我正在尝试获取 MongoDB 集合中的最后一个文档。 Mongo shell 中的以下工作:

db.collection.find().limit(1).sort({$natural:-1}) 

最后一个 object 的结果如下:

{ "_id" : ObjectId("62c8817075c9400469b1fc3a"), "token" : "135e53ebb05aa2b6055513843cb8e0dca1", "createdAt" : ISODate("2022-07-08T19:11:44.730Z"), "updatedAt" : ISODate("2022-07-08T19:11:44.730Z"), "__v" : 0 }

但这在我的 Express 应用程序中不起作用:

 const last = FM_Model.find().limit(1).sort({$natural:-1})
 console.log('Last Token from MONGODB here -> ', last)

在上面的代码中,console.log 返回一个很长的 object 与集合本身相关,但不是我想要的文档。

我尝试了其他变体,但到目前为止没有任何效果。 如果有人可以给我任何关于我所缺少的东西的想法,那就太好了。

.find()返回一个数组。 但是.findOne有一个更好的版本,它返回结果或undefined

FM_Model.findOne({}, {}, { sort: { 'createdAt' : -1 } })

使用-1 ,您将获得最旧的元素,这是最新的。

尝试

db.collection.find().sort({'_id':-1}).limit(1)

首先恢复订单然后得到第一个

我建议对 _id 字段进行排序,因为它是默认索引的: reference 或者,如果字段具有降序索引,您可以按 createdAt 排序。

const last = await FM_Model.findOne({}).sort({ _id: -1 });

更多关于 MongoDB 索引的信息可以在这里找到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM