MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Spingi l'elemento nell'array che è la chiave di un altro oggetto in una posizione specifica

Il problema è che usare il posizionale $ update operator il campo dell'array deve apparire come parte del documento della query.

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

Come menzionato in documentazione :

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