In uw zoekopdracht gebruikt u de positionele operator ($ teken) om een bepaalde video te lokaliseren met _id en dan wil je een item naar rapporten pushen.
Het probleem is dat MongoDB niet weet welke video je probeert te updaten, omdat het pad dat je hebt opgegeven (seasons.episodes.videos.$.reports ) bevat twee andere arrays (seizoenen en afleveringen).
Zoals in de documentatie staat, kun je deze operator niet meer dan één keer gebruiken
Deze beperking bemoeilijkt uw situatie. U kunt uw rapporten nog steeds bijwerken, maar u moet wel de exacte indexen van buitenste arrays kennen. Dus de volgende update zou een werkend voorbeeld zijn:
db.movies.update({'seasons.episodes.videos._id': data._id}, {$push: {'seasons.0.episodes.0.videos.$.reports': data.details}})
U kunt ook een groter deel van dit document bijwerken in node.js of uw schema-ontwerp heroverwegen, rekening houdend met technologische beperkingen.