2016-09-29 4 views
0

Ich versuche, fongByIdAndUpdate Funktion von Mungoose zu verwenden. Wenn ich ein vorhandenes Dokument aktualisiere, das einen _id Feldsatz hat, funktioniert es groß. Wenn Sie jedoch ein neues Dokument einfügen, wird es ohne _id generiert (_id-Feld ist NULL), was zu allen möglichen Problemen führt. Warum wird Upsert nicht als _id generiert? HierMongoose findByIdAndUpdate generiert nicht _id auf Einfügen

ist der Code: (für ein neues Dokument newRecord._id nicht definiert ist)

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

Antwort

0

Weil Sie upserting, wenn Sie den ersten param angeben, da es NULL finden kann nicht (Mungo behandelt nicht definiert als null) es schafft es.

Ich würde sagen, nicht findbyid verwenden und stattdessen model.update verwenden.

Verwandte Themen