sql >> Base de Datos >  >> NoSQL >> MongoDB

empujando el objeto al esquema de matriz en Mongoose

mongoose hace esto por usted en una sola operación.

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

Tenga en cuenta que al usar este método, no podrá hacer uso de las funciones "pre" del esquema.

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

A partir de la última versión de mogoose, findbyidandupdate debe tener un parámetro opcional "nuevo:verdadero". De lo contrario, se le devolverá el documento anterior. Por lo tanto, la actualización de Mongoose Version 4.x.x se convierte en:

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