问题描述
我正在尝试使用 NodeJS、Mongoose 和 React Native 创建一个聊天应用程序,我想向用户显示每个对话的最后一条消息。
我的对话架构中有一系列消息,如下所示:
const ConversationSchema = new mongoose.Schema({
{...}
messages: [
{
type: mongoose.Schema.Types.ObjectId,ref: 'Message'
}
]
{...}
})
我想知道是否有人可以帮助我只填充每个对话的第一条消息,以便回复:
conversations: [
{
"_id": ObjectId(...)
"messages": [
"text": "Last message"
]
},{
"_id": ObjectId(...)
"messages": [
"text": "Last message"
]
},...
]
我目前正在使用 mongoose 的 populate
函数,但问题是如果只填充第一个对话:
Conversation.find().populate(query).exec((err,conversations => {
{...}
})
const query = {
{
path: "messages",options: {
limit: 1,sort: { _id: -1 }
}
}
}
注意:如果我没有指定 limit: 1
和 sort: { _id: -1 }
,它会正确填充数组的所有元素,但这不是我想要的。
感谢任何能帮助我的人!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)