【发布时间】:2018-06-05 11:31:09
【问题描述】:
我正在发送以下对象以供 mongoose 更新:
{
"name" : "John",
"fruit" : "5a3d678d9b1549979d81c6ba" // this is an objectID
}
以及方法:
db_user.findByIdAndUpdate(req.params.id, req.body).then(function(user, err) {
res.send(user);
});
如果我将水果替换为我正在尝试更新的另一个fruitID,这会很好。
但是,如果我发送一个没有水果的对象,它不会从用户文档中删除水果字段。如:
{
"name" : "John"
}
它会更新我传递的任何名称,但不会删除水果字段。为什么?
另外:我不能检查我是否发送的每个字段并相应地为每个字段执行$unset,因为我发送了很多字段。我只想让 Mongoose 用新文档覆盖旧文档。
【问题讨论】: