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

Di mongoDb, bagaimana Anda menghapus elemen array dengan indeksnya?

Tidak ada cara langsung untuk menarik/menghapus dengan indeks array. Sebenarnya, ini adalah masalah terbuka http://jira.mongodb.org/browse/SERVER-1014 , Anda dapat memilihnya.

Solusinya adalah menggunakan $unset dan kemudian $pull:

db.lists.update({}, {$unset : {"interests.3" : 1 }}) 
db.lists.update({}, {$pull : {"interests" : null}})

Pembaruan:seperti yang disebutkan dalam beberapa komentar, pendekatan ini tidak bersifat atomik dan dapat menyebabkan beberapa kondisi balapan jika klien lain membaca dan/atau menulis di antara dua operasi. Jika kita membutuhkan operasi menjadi atom, kita dapat:

  • Baca dokumen dari database
  • Perbarui dokumen dan hapus item dalam larik
  • Ganti dokumen di database. Untuk memastikan dokumen tidak berubah sejak kita membacanya, kita dapat menggunakan pembaruan jika pola saat ini dijelaskan di mongo docs


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $first Aggregation Pipeline Operator

  2. Hybrid Cloud vs Full Public Cloud - Pro &Kontra

  3. Performa MongoDB - memiliki banyak database

  4. Apa yang sebenarnya dimaksud dengan MongoDB yang tidak mematuhi ACID sebelum v4?

  5. Cara mengizinkan semua host ke set replika di mongodb