我正在尝试使用mongoose的findByIdAndUpdate函数。当我更新具有 _id 字段集的现有文档时,它的效果很好。但是,插入新文档会插入一个没有_id生成的文件(_id字段为NULL),这会导致各种问题。为什么没有生成_id?
这是代码: (对于新文档newRecord._id未定义)
myModel.findByIdAndUpdate(newRecord._id,
newRecord,
{upsert: true, new: true, runValidators: true, setDefaultsOnInsert: true},
function(err, patient){
//do something
});
答案 0 :(得分:0)
因为你要插入,如果你指定了第一个参数,因为它无法找到NULL(mongoose将undefined视为null),它会创建它。
我会说不要使用findbyid而是使用model.update。