MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pousser l'élément dans le tableau qui est la clé d'un autre objet à une position spécifique

Le problème est que pour utiliser le positionnel $ opérateur de mise à jour le champ de tableau doit apparaître dans le cadre du document de requête.

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

Comme mentionné dans le documentation :

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