MongoDB Perbarui() Dokumen dengan Contoh

\

โšก Ringkasan Cerdas

MongoDB Operasi Update() pada dokumen memodifikasi catatan yang sudah ada dalam sebuah koleksi. Metode update() menerima kondisi untuk memilih dokumen dan pengubah seperti $set untuk mengubah nilai bidang, dan opsi multi memperbarui beberapa dokumen yang cocok sekaligus.

  • ๏ธ Metode update(): Perintah update() mengubah kolom dalam dokumen yang sesuai dengan kondisi tertentu.
  • ๐ŸŽฏ Kondisi Pertandingan: Argumen pertama memilih dokumen mana yang akan diperbarui, misalnya {Employeeid:1}.
  • ๐Ÿ”ง $set Operauntuk: Operator $set menetapkan nilai baru ke suatu field tanpa mengganti seluruh dokumen.
  • ๐Ÿ“š Pembaruan Banyak: Opsi multi, atau updateMany(), memodifikasi setiap dokumen yang cocok, bukan hanya satu.
  • โž• Upsert: Opsi upsert menyisipkan dokumen baru ketika tidak ada dokumen yang sudah ada yang sesuai dengan kondisi tersebut.
  • ๐Ÿ”„ Metode Modern: updateOne(), updateMany(), dan replaceOne() adalah pengganti terkini untuk fungsi update() yang sudah usang.

MongoDB Pembaruan() Dokumen

Pembaruan dokumen dasar

MongoDB menyediakan perintah update() untuk memperbarui dokumen koleksi. Untuk memperbarui hanya dokumen yang ingin Anda perbarui, Anda dapat menambahkan kriteria pada pernyataan pembaruan sehingga hanya dokumen terpilih yang diperbarui.

Parameter dasar pada perintah tersebut adalah kondisi dokumen mana yang perlu diperbarui, dan selanjutnya adalah modifikasi yang perlu dilakukan.

Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan.

Langkah 1) Keluarkan perintah pembaruan

Langkah 2) Pilih kondisi yang ingin Anda gunakan untuk memutuskan dokumen mana yang perlu diperbarui. Dalam contoh kita, kita ingin memperbarui dokumen yang memiliki ID Karyawan 22.

Langkah 3) Gunakan perintah set untuk mengubah Nama Bidang

Langkah 4) Pilih Nama Bidang mana yang ingin Anda ubah dan masukkan nilai baru yang sesuai.

db.Employee.update(
{"Employeeid" : 1},
{$set: { "EmployeeName" : "NewMartin"}});

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan

Keluaran:

Pembaruan dokumen dasar

Outputnya dengan jelas menunjukkan bahwa satu catatan cocok dengan kondisi dan karenanya nilai bidang yang relevan telah diubah.

MongoDB Memperbarui Operatorso

Operator $set adalah cara paling umum untuk mengubah sebuah field, tetapi MongoDB menyediakan beberapa operator pembaruan untuk berbagai kebutuhan. Anda dapat menempatkannya di argumen kedua dari update() bersamaan atau sebagai pengganti $set:

  • $set: Mengatur nilai suatu kolom, dan membuat kolom tersebut jika belum ada.
  • $tidak disetel: Menghapus seluruh kolom dari dokumen.
  • $inc: Menambah atau mengurangi nilai numerik suatu kolom dengan jumlah tertentu.
  • $mul: Mengalikan nilai dari suatu kolom numerik.
  • $ganti nama: Mengganti nama kolom menjadi nama baru.
  • $mendorong: Menambahkan nilai ke kolom array.
  • $tarik: Menghapus nilai yang cocok dari suatu kolom array.

Setiap operator hanya menargetkan kolom yang Anda sebutkan, sehingga bagian dokumen lainnya tetap tidak berubah. Anda dapat menggabungkan beberapa operator dalam satu panggilan update() untuk memodifikasi beberapa kolom sekaligus, yang menjaga agar pembaruan tetap akurat dan menghindari penimpaan data yang ingin Anda pertahankan.

Memperbarui Beberapa Nilai

Untuk memastikan bahwa beberapa dokumen/dokumen massal diperbarui secara bersamaan MongoDB Anda perlu menggunakan opsi multi karena jika tidak, secara default hanya satu dokumen yang dimodifikasi dalam satu waktu.

Contoh berikut menunjukkan cara memperbarui banyak dokumen.

Dalam contoh ini, pertama-tama kita akan mencari dokumen yang memiliki ID Karyawan โ€œ1โ€ dan mengubah nama Karyawan dari โ€œMartinโ€ menjadi โ€œNewMartinโ€

Langkah 1) Keluarkan perintah pembaruan

Langkah 2) Pilih kondisi yang ingin Anda gunakan untuk memutuskan dokumen mana yang perlu diperbarui. Dalam contoh kita, kita ingin dokumen yang memiliki ID Karyawan โ€œ1โ€ diperbarui.

Langkah 3) Pilih Nama Bidang mana yang ingin Anda ubah dan masukkan nilai barunya.

db.Employee.update
(
	{
		Employeeid : 1
	},
	{
		$set :
		{
			"EmployeeName" : "NewMartin",
			"Employeeid" : 22
		}
	}
)

Jika perintah berhasil dijalankan dan jika Anda menjalankan "Temukan" perintah untuk mencari dokumen dengan id Karyawan sebagai 22 Anda akan melihat Output berikut akan ditampilkan

Keluaran:

Memperbarui Beberapa Nilai

Outputnya dengan jelas menunjukkan bahwa satu catatan cocok dengan kondisi dan karenanya nilai bidang yang relevan telah diubah.

Cara Memperbarui/Memasukkan Dokumen MongoDB

Upsert adalah kombinasi dari update dan insert. Saat Anda mengaktifkannya, MongoDB Memperbarui dokumen yang sesuai dengan kondisi, atau menyisipkan dokumen baru jika tidak ditemukan kecocokan. Ini berguna ketika Anda tidak yakin apakah suatu catatan sudah ada.

Untuk melakukan upsert, tambahkan opsi upsert yang diatur ke true sebagai argumen ketiga dari update():

db.Employee.update(
  {Employeeid: 5},
  {$set: {EmployeeName: "Sofia"}},
  {upsert: true}
)

Inilah yang terjadi:

  • Jika dokumen dengan Employeeid 5 ada, MongoDB memperbarui kolom EmployeeName-nya.
  • Jika dokumen tersebut tidak ada, MongoDB menyisipkan dokumen baru dengan Employeeid 5 dan EmployeeName โ€œSofisebuah".

Upsert sangat berguna untuk penghitung, pengaturan, dan alur kerja apa pun di mana Anda ingin membuat catatan pada penggunaan pertama dan memperbaruinya setelahnya. Dalam sistem modern MongoDBPerilaku yang sama juga tersedia melalui updateOne() dan updateMany() dengan memberikan {upsert: true} pada opsi. Berhati-hatilah dengan kondisi ini, karena filter yang luas dikombinasikan dengan upsert dapat membuat dokumen yang tidak terduga.

updateOne() vs updateMany() vs replaceOne()

Metode update() sekarang merupakan perintah lama. Modern MongoDB Para pengemudi membagi perilaku tersebut menjadi tiga metode yang lebih jelas. Tabel di bawah ini membandingkan ketiganya:

metode Apa yang dilakukannya Dokumen yang terpengaruh
pembaruanSatu() Menerapkan operator pembaruan ke dokumen yang cocok pertama. Satu
perbaruiBanyak() Menerapkan operator pembaruan ke setiap dokumen yang cocok. Banyak
replaceOne() Mengganti seluruh dokumen yang cocok pertama dengan dokumen baru. Satu

Gunakan updateOne() untuk perubahan tunggal yang ditargetkan, updateMany() sebagai pengganti opsi multi yang lama, dan replaceOne() ketika Anda ingin mengganti seluruh dokumen daripada hanya mengedit kolom. Metode-metode ini mengembalikan hasil yang jelas yang menunjukkan berapa banyak dokumen yang cocok dan berapa banyak yang dimodifikasi, yang membuatnya lebih aman dan lebih mudah untuk di-debug daripada update().

Pertanyaan Umum Demo Slot

Tanpa operator pembaruan seperti $set, MongoDB Mengganti seluruh dokumen yang cocok dengan objek yang Anda berikan, menghapus bidang apa pun yang tidak disertakan. Selalu gunakan `$set` untuk mengubah bidang tertentu sambil tetap mempertahankanping sisanya tetap utuh.

Ya. Jika kolom yang disebutkan dalam $set hilang dari dokumen yang cocok, MongoDB menambahkan nilai yang diberikan. Hal ini membuat $set berguna baik untuk memperbarui kolom yang sudah ada maupun menambahkan kolom baru.

Gunakan findOneAndUpdate() dengan opsi returnDocument diatur ke 'after'. Ini menerapkan perubahan dan mengembalikan dokumen yang dimodifikasi dalam satu operasi atomik, yang berguna ketika Anda membutuhkan nilai baru dengan segera.

AI dapat mengubah permintaan biasa menjadi perintah update atau updateMany dengan kondisi dan operator yang tepat, seperti $set atau $inc, dan menjelaskan setiap bagiannya sehingga pemula menghindari kesalahan.

Ya. AI dapat menandai pembaruan yang menghilangkan $set dan akan mengganti seluruh dokumen, memperingatkan ketika filter cocok dengan semuanya, dan menyarankan pengujian pada salinan sebelum menjalankannya di lingkungan produksi.

Ringkaslah postingan ini dengan: