MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Schieben von Objekten in das Array-Schema in Mongoose

mongoose erledigt dies für Sie in einem Arbeitsgang.

Contact.findByIdAndUpdate(
    info._id,
    {$push: {"messages": {title: title, msg: msg}}},
    {safe: true, upsert: true},
    function(err, model) {
        console.log(err);
    }
);

Bitte beachten Sie, dass Sie mit dieser Methode die "pre"-Funktionen des Schemas nicht nutzen können.

http://mongoosejs.com/docs/middleware.html

Ab dem neuesten Mogoose muss findbyidandupdate ein "new :true" optionaler Parameter hinzugefügt werden. Andernfalls erhalten Sie das alte Dokument zurück. Daher konvertiert das Update für Mongoose Version 4.x.x in :

Contact.findByIdAndUpdate(
        info._id,
        {$push: {"messages": {title: title, msg: msg}}},
        {safe: true, upsert: true, new : true},
        function(err, model) {
            console.log(err);
        }
    );