【发布时间】:2022-02-15 08:12:36
【问题描述】:
我正在尝试更新父文档的子文档。
我有一个名为“发布”的文档,我引用了这样的“用户”文档:
const PostSchema = new mongoose.Schema({
title: String,
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
},
},
{ collection: 'posts' })
const Post = mongoose.model('Post', PostSchema);
module.exports = Post;
我正在尝试更改名称,例如发布者的名称。名称字段在“用户”中。
我正在尝试这样改变它:
exports.update = async (req, res) => {
//find user by its id, update its post with what's in req.body
Post.findById(req.body.id, function(err, result) {
console.log(result)
if (!err) {
if (!result){
res.status(404).send('User was not found');
}
else{
result.user.nome = "User Name";
result.markModified("user");
result.save(function(saveerr, saveresult) {
if (!saveerr) {
res.status(200).send(saveresult);
} else {
res.status(400).send(saveerr.message);
}
});
}
} else {
res.status(400).send(err.message);
}
}).populate("user");
}
这是我的 route.js
app.put(
"/api/produtor/update",
controller.update
);
当我在邮递员上运行它时,我得到状态 200,并且名称在退货中显示为已修改,但它没有保存在银行中。
如果有人能帮我分析一下,我将不胜感激!
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query