MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Dorong elemen ke dalam array bersarang luwak nodejs

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $detik

  2. MongoCursorTimeoutException untuk fungsi agregat

  3. cara memasukkan nilai array tertentu di mongodb menggunakan angularjs

  4. MongoDB Menghitung Nilai dari Dua Array, Urutkan dan Batas

  5. Bagaimana agregasi MongoDB di Node.js