MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Schieben Sie das Element in das Array, das der Schlüssel eines anderen Objekts an einer bestimmten Position ist

Das Problem besteht darin, den Positionscode $ zu verwenden Update-Operator muss das Array-Feld als Teil des Abfragedokuments erscheinen.

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

Wie im Dokumentation :

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