所以我的模式看起来像是:
var ProjectSchema = new mongoose.Schema({
scrum_master_id: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
developers: [{type: mongoose.Schema.Types.ObjectId, ref: 'Developer'}],
scrums: [{type: mongoose.Schema.Types.ObjectId, ref: 'Scrum'}],
created_at: {type: Date, default: Date.now},
meta: {
trello_board_id: String,
basecamp_url: String
},
description: String,
title: String
});
我可以正确地将它发送到我的快递服务器,它可以正确更新。有问题的路线如下:
.put(jwt.protect, function (req, res) {
Project.findByIdAndUpdate(req.params.id, {$set: req.body}, function (err, project) {
console.log(project);
res.json(project);
});
})
我遇到的问题是我的子文档(如开发人员)未在传递给findByIdAndUpdate回调的project
变量中更新。文档在数据库中更新,但不在更新函数的回调中。如何刷新这些子文档以反映数据库现在具有的内容?
答案 0 :(得分:3)
findByIdAndUpdate
带有一个options参数,您可以在其中传递{new:true}
并返回修改后的文档:
Project.findByIdAndUpdate(req.params.id, {$set: req.body}, {new: true}, function (err, project) {
console.log(project);
res.json(project);
});