MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

spingere l'oggetto nello schema dell'array in Mongoose

mangusta lo fa per te in un'unica operazione.

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

Tieni presente che utilizzando questo metodo non sarai in grado di utilizzare le funzioni "pre" dello schema.

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

A partire dall'ultimo mogoose findbyidandupdate deve avere un parametro opzionale "new:true" aggiunto. Altrimenti ti verrà restituito il vecchio documento. Quindi l'aggiornamento per Mongoose versione 4.x.x viene convertito in:

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