Dalam kueri Anda, Anda menggunakan operator posisional ($ tanda) untuk melokalkan satu video tertentu dengan _id dan kemudian Anda ingin mendorong satu item ke laporan.
Masalahnya adalah MongoDB tidak mengetahui video mana yang Anda coba perbarui karena jalur yang Anda tentukan (seasons.episodes.videos.$.reports ) berisi dua larik lainnya (musim dan episode).
Seperti yang dinyatakan dalam dokumentasi, Anda tidak dapat menggunakan operator ini lebih dari sekali
Keterbatasan ini memperumit situasi Anda. Anda masih dapat memperbarui laporan Anda tetapi Anda perlu mengetahui indeks yang tepat dari array luar. Jadi pembaruan berikut akan berfungsi sebagai contoh:
db.movies.update({'seasons.episodes.videos._id': data._id}, {$push: {'seasons.0.episodes.0.videos.$.reports': data.details}})
Atau Anda dapat memperbarui sebagian besar dokumen ini di node.js atau memikirkan kembali desain skema Anda dengan mengingat keterbatasan teknologi.