MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Empurre o elemento na matriz que é a chave de outro objeto em uma posição específica


O problema é que para usar o posicional $ operador de atualização, o campo array deve aparecer como parte do documento de consulta.
MySchema.findOneAndUpdate(
    { "_id": questionId, "question.answers.author": "patrick" }, 
    { "$push": { "question.answers.$.comments": { "$each": [comment] } } }, 
    function(err, doc) {
        //Do something
    }
)

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