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

Empuje el elemento en la matriz que es la clave de otro objeto en una posición específica

El problema es que para usar el posicional $ operador de actualización, el campo de matriz debe aparecer como parte del documento de consulta.

MySchema.findOneAndUpdate(
    { "_id": questionId, "question.answers.author": "patrick" }, 
    { "$push": { "question.answers.$.comments": { "$each": [comment] } } }, 
    function(err, doc) {
        //Do something
    }
)

Como se menciona en documentación :

MySchema.findOneAndUpdate(
    { "_id": questionId }, 
    { "$push": { "question.answers.1.comments": { "$each": [comment] } } }, 
    function(err, doc) {
        //Do something
    }
)