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 operator $push atau operator $addToSet
Operator db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0
Misalkan kita memiliki koleksi bernama db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )_1 dengan dokumen-dokumen berikut
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] } { "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L" ] }Dan katakanlah kita ingin menambahkan nilai ke array di dokumen 3
Kita dapat menggunakan db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0 bersamaan dengan db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )3 untuk menambahkan nilai
Mari kita lihat kembali koleksinya untuk memverifikasi perubahannya
db.products.find()_Hasil
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] } { "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L", "XL" ] }Kita dapat melihat bahwa nilai db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )_4 telah ditambahkan ke array di dokumen 3
Operator db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0 juga dapat digunakan dengan berbagai pengubah, seperti db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )6, db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )7, dan db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )8
Anda juga dapat menambahkan beberapa nilai ke array dengan menggunakan pengubah db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )9
Lihat MongoDB db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0 untuk contoh
Operator db.products.find()1
Operator db.products.find()1 bekerja dengan cara yang mirip dengan db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0, kecuali untuk beberapa hal
- Jika nilai yang Anda coba tambahkan sudah ada dalam larik, itu tidak akan ditambahkan
- Pengubah db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )6, db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )7, dan db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )8 tidak dapat digunakan dengan db.products.find()1
Misalkan koleksi kita terlihat seperti ini
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "product" : "Cap", "sizes" : [ "S", "M", "L", "XL" ] }Mari masukkan beberapa nilai ke array di dokumen 2
db.products.update( { _id: 2 }, { $addToSet: { sizes: { $each: [ "XXL", "XXXL" ] } } } )Sekarang mari kita periksa koleksinya lagi
Hasil
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL", "XXL", "XXXL" ] } { "_id" : 3, "product" : "Cap", "sizes" : [ "S", "M", "L", "XL" ] }Kita dapat melihat bahwa kedua nilai ditambahkan ke array di dokumen 2 seperti yang diharapkan
Contoh ini menggunakan pengubah db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )_9, yang juga dapat Anda gunakan dengan operator db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0
Saya hanya menggunakan pengubah db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )_9 karena saya menambahkan banyak nilai. Jika saya hanya menggunakan satu nilai, saya dapat menghilangkan pengubah db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )9, dan sintaksnya akan terlihat seperti contoh db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0 di atas
Seperti yang disebutkan, jika nilainya sudah ada, itu tidak akan ditambahkan. Juga, dengan kedua operator, jika Anda menambahkan sebuah larik, seluruh larik akan ditambahkan sebagai nilai terpisah di dalam larik yang ada