Mongoose findByIdAndUpdate在插入时不生成_id

时间:2016-09-29 05:02:51

标签: mongoose

我正在尝试使用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 
    });

1 个答案:

答案 0 :(得分:0)

因为你要插入,如果你指定了第一个参数,因为它无法找到NULL(mongoose将undefined视为null),它会创建它。

我会说不要使用findbyid而是使用model.update。