我曾尝试过关于SO的其他问题,但它们都有点过时了。我正在使用Mongoose来保存对文档的更改。我希望能够重新填充我的参考字段。我在Mongoose问题中看到here和here已经添加了类似的内容,但除非我手动“减少”字段,使用模型填充,否则我似乎无法使其工作。然后保存文档。
例如,如果我有一个这样的模式引用另一个集合:
var EmployeeSchema = new Schema({
Name: {
type: String
required: true
},
Manager: {
type: Schema.ObjectId,
ref: 'Managers'
}
});
填充的对象看起来像这样:
{
Name: 'Test Employee',
Manager: {
_id: <Some ObjectId>
Name: 'Test Manager',
Group: 'HR'
}
}
如果我更改了管理器的ID值,然后调用employee.save(callback)
,则返回的数据只有正确的ID,但尚未使用新管理器重新填充Manager
字段。如果没有上面描述的所有步骤,有没有办法快速完成这项工作?
答案 0 :(得分:0)
我认为在您想要更改员工经理的情况下通常会发生的事情是:
employee.manager = newManager
而不是employee.manager._id = newManagerId
进行更改,否则我不确定mongoose是否会正确理解您的更改。