Мангуст findByIdAndUpdate не создает _id при вставке

Я пытаюсь использовать функцию findbyidandupdate мангуста. Когда я обновляю существующий документ, который имеет набор полей _id, он отлично работает. Однако вставка нового документа вставляет один без _id генерируется (_id поле NULL), что приводит ко всем видам проблем. Почему upsert не генерирует _id?

Вот код:
(для нового документа newRecord._id не определено)

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

1 ответ

  1. Поскольку вы повышаете, если вы указываете первый парам, так как он не может найти NULL (Мангуст обрабатывает undefined as null), он создает его.

    Я бы сказал, Не используйте findbyid и вместо этого используйте модель.обновление.