创建新消息时,我立即想要
populate
消息文档并将其发送回用户。但是,当我执行 message.populate()
时,我收到一条错误消息,指出 populate
未定义。
这是我的代码:
let message = await createMessage(chatId, req.user._id, messageText)
// Error thrown here when trying to populate the message
await message.populate({ path: "sender" })
async function createMessage(chatId, senderId, messageText) {
let message = await Message.create({
sender: senderId,
chat: chatId,
messageText,
)}
return message
}
为什么
populate
未定义?谢谢。
您的代码的问题似乎是您试图直接调用消息对象上的
populate
方法,但 populate 方法是 Mongoose 查询的功能,而不是单个文档。
您需要调整代码以使用 Mongoose 查询进行人口统计。 具体方法如下:
let message = await createMessage(chatId, req.user._id, messageText)
// Error thrown here when trying to populate the message
message = await Message.findById(message._id).populate('sender').exec();
async function createMessage(chatId, senderId, messageText) {
let message = await Message.create({
sender: senderId,
chat: chatId,
messageText,
});
return message;
}