node.js - How to find a latest data in array in mongoose -
this question has answer here:
i have conversation model below:
const convoschema = mongoose.schema({ convoid: { type: string, required: true }, seller: { type: string, required: true }, buyer: { type: string, require: true }, product: [{ type: schema.types.objectid, ref: 'post' }], messages: [{ type: schema.types.objectid, ref: 'message' }] })
and i'm trying latest message in convo couldn't figure out how it. ideas?
_id
contains timestamp in it, first element in .find()
oldest , last element newest,
so adding sort like: { _id: -1}
give u latest data
var convo = mongoose.model('convo', convoschema); //init mongoose model convo.find() .limit(1) .sort({ _id: -1 })
you can remove .limit()
if u want complete list of documents
=======================================================================
sorry not reading properly,
for latest message,
convo.findone({}, response => { var data = response.toobject(); latestmessage = data.messages.pop() })
Comments
Post a Comment