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
Salinandb.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. db.employees.find({_id:5}) 0 menentukan bahwa elemen larik 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
db.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 array untuk menambahkan beberapa elemen
Gunakan operator db.employees.find({_id:5}) 8 untuk menambahkan elemen jika belum ada
Berikut ini akan menambahkan array db.employees.find({_id:5}) 9 ke db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}}) 8 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