簡體   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