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

2 Cara Menambahkan Nilai ke Array di MongoDB

Jika Anda memiliki kumpulan dokumen di MongoDB yang berisi array, Anda dapat menambahkan nilai baru ke array tersebut jika diperlukan.

Bergantung pada kebutuhan spesifik Anda, Anda dapat menggunakan $push operator atau $addToSet operator.

$push Operator

Misalkan kita memiliki koleksi yang disebut products dengan dokumen sebagai berikut:

{ "_id" :1, "product" :"Bat", "sizes" :[ "S", "M", "L" ] }{ "_id" :2, "product" :"Topi" , "ukuran" :[ "S", "L", "XL" ] }{ "_id" :3, "produk" :"Tutup", "ukuran" :[ "M", "L" ] } 

Dan katakanlah kita ingin menambahkan nilai ke array di dokumen 3.

Kita bisa menggunakan $push dalam hubungannya dengan update() untuk menambahkan nilai:

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
) 

Mari kita lihat kembali koleksinya untuk memverifikasi perubahannya:

db.products.find() 

Hasil:

{ "_id" :1, "product" :"Bat", "sizes" :[ "S", "M", "L" ] }{ "_id" :2, "product" :"Topi" , "ukuran" :[ "S", "L", "XL" ] }{ "_id" :3, "produk" :"Tutup", "ukuran" :[ "M", "L", "XL" ] }

Kita dapat melihat bahwa nilai XL telah ditambahkan ke larik di dokumen 3.

$push operator juga dapat digunakan dengan berbagai pengubah, seperti $position , $sort , dan $slice .

Anda juga dapat menambahkan beberapa nilai ke array dengan menggunakan $each pengubah.

Lihat MongoDB $push sebagai contoh.

$addToSet Operator

$addToSet operator bekerja dengan cara yang mirip dengan $push , kecuali untuk beberapa hal:

  • Jika nilai yang Anda coba tambahkan sudah ada dalam larik, nilai tersebut tidak akan ditambahkan.
  • $position , $sort , dan $slice pengubah tidak dapat digunakan dengan $addToSet .

Misalkan koleksi kita terlihat seperti ini:

{ "_id" :1, "product" :"Bat", "sizes" :[ "S", "M", "L", "XL" ] }{ "_id" :2, "product" :"Topi", "ukuran" :[ "S", "L", "XL" ] }{ "_id" :3, "produk" :"Cap", "ukuran" :[ "S", "M" , "L", "XL" ] }

Mari kita masukkan beberapa nilai ke array di dokumen 2:

db.products.update(
   { _id: 2 },
   { 
     $addToSet: { 
        sizes: {
           $each: [ "XXL", "XXXL" ]
        }
      } 
    }
) 

Sekarang mari kita periksa kembali koleksinya:

db.products.find() 

Hasil:

{ "_id" :1, "product" :"Bat", "sizes" :[ "S", "M", "L", "XL" ] }{ "_id" :2, "product" :"Topi", "ukuran" :[ "S", "L", "XL", "XXL", "XXXL" ] }{ "_id" :3, "produk" :"Cap", "sizes" :[ "S", "M", "L", "XL" ] }

Kita dapat melihat bahwa dua nilai ditambahkan ke larik di dokumen 2 seperti yang diharapkan.

Contoh ini menggunakan $each pengubah, yang juga dapat Anda gunakan dengan $push operator.

Saya hanya menggunakan $each pengubah karena saya menambahkan beberapa nilai. Jika saya hanya menggunakan satu nilai, saya bisa menghilangkan $each pengubah, dan sintaksnya akan terlihat lebih seperti $push di atas contoh.

Seperti yang disebutkan, jika nilainya sudah ada, itu tidak akan ditambahkan. Juga, dengan kedua operator, jika Anda menambahkan larik, seluruh larik akan ditambahkan sebagai nilai terpisah di dalam larik yang ada.

Lihat MongoDB $addToSet untuk lebih banyak contoh.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mendapatkan tanggal koleksi MongoDB dibuat menggunakan driver MongoDB C#?

  2. Berapa jumlah maksimum pecahan yang dapat dimiliki MongoDB?

  3. Bagaimana cara menggunakan $elemMatch pada proyeksi agregat?

  4. Peningkatan otomatis di MongoDB untuk menyimpan urutan ID Pengguna Unik

  5. Ikhtisar Transaksi ACID Multi-Dokumen di MongoDB dan Cara Menggunakannya