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
}
)