Di MongoDB, operator $push digunakan untuk menambahkan nilai tertentu ke array. Jika bidang yang disebutkan tidak ada dalam dokumen yang akan diperbarui, operator $push menambahkannya sebagai bidang baru dan menyertakan nilai yang disebutkan sebagai elemennya. Jika bidang pemutakhiran bukan bidang jenis larik, operasi gagal
Pada saat memperbarui jika nilai itu sendiri adalah sebuah larik, operator $push menambahkan seluruh larik sebagai elemen tunggal
Jika Anda ingin menambahkan setiap elemen dari nilai secara terpisah, operator $push dapat digunakan dengan pengubah $each
Sintaksis
db.collection.update( <query>,{ $push: { <field>: <value> } })Parameter
NamaKeteranganbidangnama kolom atau bidang ke dokumen. nilai. Ini adalah nilai yang akan ditentukan untuk bidang atau kolom. kueriKueri dapat berupa ekspresi atau kondisi atau kriteria
Koleksi sampel "siswa"
{ "_id" : 1, "sem" : 1, "subjects" : [ "phys", "chem", "maths", "gkn", "stat", "astro" ], "achieve" : [ 70, 87, 90, 90, 65, 81 ] } _Contoh operator $push MongoDB
Jika kita ingin menambahkan 95 ke bidang array yang dicapai dengan kondisi subjek adalah "gkn", perintah mongodb berikut dapat digunakan -
> db.student.update( { "subjects" : "gkn" },{ $push: { "achieve": 95 } });Di sini, dalam contoh di atas $each pengubah telah digunakan untuk menambahkan beberapa elemen 77,49,83 ke array reach yang cocok dengan kondisi subject sama dengan "gkn"
Anda dapat menggunakan metode updateOne() atau updateMany() untuk menambah, memperbarui, atau menghapus elemen larik berdasarkan kriteria yang ditentukan. Disarankan untuk menggunakan metode db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 3 untuk memperbarui beberapa array dalam koleksi
Untuk mendemonstrasikan operasi pemutakhiran, masukkan dokumen contoh berikut ke dalam koleksi db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 4
Contoh data
Salinandb.employees.insertMany([ { _id:1, firstName: "John", lastName: "King", email: "[email protected]", salary: 5000, skills: [ "Angular", "React", "MongoDB" ] }, { _id:2, firstName: "Sachin", lastName: "T", email: "[email protected]", salary: 8000, skills: [ "Accounting", "Tax" ] }, { _id:3, firstName: "James", lastName: "Bond", email: "[email protected]", salary: 7500, skills: [ "Sales", "Marketing" ] }, { _id:4, firstName: "Steve", lastName: "J", email: "[email protected]", salary: 7000, skills: [ "Mac", "Marketing", "Product Design" ] }, { _id:5, firstName: "Kapil", lastName: "D", email: "[email protected]", salary: 4500, skills: [ "Accounting", "Tax", "Sales" ] }, { _id:6, firstName: "Amitabh", lastName: "B", email: "[email protected]", salary: 7000, skills: [ "Marketing", "Tax" ] } ])
Timpa Array
Operator db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) _5 menimpa array yang ditentukan alih-alih menambahkan, menghapus, dan memperbarui elemen array
Contoh. Timpa Array
Salinandb.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
Keluaran
{ acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } _
Dalam contoh di atas, db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) _6 menimpa larik yang ada untuk db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 7
Periksa Dokumen yang Diperbarui
Salinandb.employees.find({_id:5})
Keluaran
{ _id: 5, firstName: 'Kapil', lastName: 'D', email: '[email protected]', salary: 4500, skills: [ 'Sales Tax' ], department: { name: 'Finance' }, location: 'USA' }
Perbarui Elemen Array
Gunakan untuk memperbarui satu atau beberapa elemen array di MongoDB
Berikut ini akan memperbarui "Pemasaran" menjadi "Berbicara di Depan Umum" di bidang larik db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 8 ke semua dokumen
Contoh. Perbarui Elemen Array
db.employees.updateMany( {skills:"Marketing"}, {$set:{"skills.$":"Public Speaking"}})
Keluaran
{ acknowledged: true, insertedId: null, matchedCount: 2, modifiedCount: 2, upsertedCount: 0 }
Dalam contoh di atas, db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) _9 menentukan kriteria untuk menemukan semua dokumen di mana array db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 8 berisi elemen { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 1
Parameter kedua { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } _2 menentukan nilai yang akan diperbarui menggunakan operator db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 5. { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 4 menentukan untuk memperbarui elemen menjadi "Public Speaking". { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 5 adalah operator larik yang bertindak sebagai placeholder untuk kecocokan pertama dari dokumen kueri pembaruan
Contoh. Perbarui Elemen Array
Salinandb.employees.updateMany( {}, { $set: {"skills.$[element]":"GST"}}, { arrayFilters: [{ element: "Tax" }]})
Keluaran
{ acknowledged: true, insertedId: null, matchedCount: 6, modifiedCount: 2, upsertedCount: 0 }
Dalam contoh di atas, { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 6 memperbarui larik db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 8 jika berisi elemen "Tax" lalu memperbaruinya menjadi "GST". { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 8 menentukan untuk memperbarui elemen ke "GST", dan { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 9 menentukan kriteria untuk elemen array. The db.employees.find({_id:5}) _0 menentukan bahwa elemen array find yang nilainya adalah "Pajak". Jadi, metode db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) _3 akan memperbarui elemen array dengan nilai yang ditentukan oleh db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 5 dan untuk elemen pencocokan yang ditentukan oleh { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 9
Tambahkan Elemen Baru ke Array
Gunakan operator array db.employees.find({_id:5}) _4 untuk menambahkan elemen baru ke array. Berikut ini akan menambahkan db.employees.find({_id:5}) _5 elemen di semua array
Contoh. Tambahkan Elemen Array
Salinandb.employees.updateMany( {}, {$push:{"skills":"Sports"}}) // add "Sports" to all arrays db.employees.updateMany( {_id:3}, {$push:{"skills":"Sports"}}) // add "Sports" element to skills array where _id:3
Gunakan operator db.employees.find({_id:5}) _6 untuk menentukan beberapa elemen yang perlu ditambahkan dalam array
Contoh. Tambahkan Elemen Array
Salinandb.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 0
Dalam contoh di atas, db.employees.find({_id:5}) 7 menentukan sebuah array untuk menambahkan beberapa elemen
Gunakan operator db.employees.find({_id:5}) 8 untuk menambahkan elemen jika belum ada
Berikut ini akan menambahkan db.employees.find({_id:5}) _9 ke db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 8 array di semua dokumen jika tidak ada
Contoh. Tambahkan Elemen Jika Tidak Ada
Salinandb.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 1
Hapus Elemen Pertama atau Terakhir dari Array
Gunakan operator { _id: 5, firstName: 'Kapil', lastName: 'D', email: '[email protected]', salary: 4500, skills: [ 'Sales Tax' ], department: { name: 'Finance' }, location: 'USA' } _1 untuk menghapus elemen pertama atau terakhir dari array. Tentukan 1 untuk menghapus elemen terakhir dan -1 untuk menghapus elemen pertama