我正在构建一个简单的聊天应用。我的问题是,当我通过向消息数组添加消息来更新会话模型时,我不知何故需要将此消息与其_id
& createdAt
个字段(自动生成)。是否有可能使用mongoose?
我可以通过以下方式实现这一目标:
const { messages } = conversation;
const lastMessage = messages[messages.length - 1];
我更新模型的代码看起来像这样
conversation.messages.push({
conversationId,
sender: _id,
body,
});
conversation.save((err, conversation) => {
if (!err) {
const { messages } = conversation;
const message = messages[messages.length - 1];
pubsub.publish('messageCreated', {
messageCreated: message,
});
return message;
}
});
我很好奇mongoose
是否内置了这样的功能,或者我需要保留所有内容。我不确定我当前的解决方案是否有效,如果messages
数组有数千条消息,它将正常工作
答案 0 :(得分:1)
使用sudo service nginx restart
操作:
update
在这种情况下会更有效率。但是如果你在一个对话上有很多读/写操作或者需要选择一些消息数组,那么你应该将消息移到分离的集合中。