我有一个如下所示的对话模型:
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' }]
})
我正试图在Convo中获取最新消息,但无法弄清楚如何做到这一点。任何想法?
答案 0 :(得分:0)
_id
基本上包含其中的时间戳,因此您在.find()
中获得的第一个元素将是最旧,最后一个元素将是最新< /强>,
所以通过添加类似:{ _id: -1}
的类型将为您提供最新数据
var Convo = mongoose.model('Convo', ConvoSchema); //init mongoose model
Convo.find()
.limit(1)
.sort({ _id: -1 })
如果您需要完整的文档列表,可以删除.limit()
=============================================== ========================
很抱歉没有正确阅读,
有关最新消息,
Convo.findOne({}, response => {
var data = response.toObject();
latestMessage = data.messages.pop()
})