2016-09-29 37 views
0

我正在嘗試使用mongoose的findByIdAndUpdate函數。當我更新一個現有的文檔,其中有一個現場設置,它的效果很好。然而插入一個新的doc會插入一個沒有生成_id的字段(_id字段爲NULL),這會導致各種問題。爲什麼不是upsert生成一個_id?Mongoose findByIdAndUpdate不會在插入時生成_id

下面是代碼: (新文檔newRecord._id未定義)

myModel.findByIdAndUpdate(newRecord._id, 
            newRecord, 
            {upsert: true, new: true, runValidators: true, setDefaultsOnInsert: true}, 
            function(err, patient){ 
             //do something 
    }); 

回答

0

因爲你upserting,如果指定的第一個參數,因爲它找不到NULL(未定義的貓鼬對待null)它創建它。

我會說不使用findbyid,而是使用model.update。

相關問題