Get last document in MongoDB collection

Issue

I am trying to get the last document in a MongoDB collection.
The following works in the Mongo shell:

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

Results in the last object like so:

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

But this does not work in my Express app:

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

In the code above the console.log returns a very long object related to the collection itself, but not the document I want.

I have tried other variations but nothing has worked so far. If anyone can give me any ideas of what I am missing that would be great.

Solution

.find() returns an array. But there is an better version with .findOne wich return the result or undefined

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

With -1 you get the oldest element, wich is the latest.

Answered By – bill.gates

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published