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

MongoDB - Perbarui Dokumen

Gunakan update() metode atau save() metode untuk memperbarui dokumen di MongoDB.

Di MongoDB, keduanya update() metode dan save() metode yang dapat digunakan untuk memperbarui dokumen.

update() metode memperbarui nilai dalam dokumen atau dokumen yang ada, sedangkan save() metode menggantikan dokumen dengan dokumen yang diteruskan sebagai parameter.

Namun, update() metode juga dapat menggantikan seluruh dokumen, tergantung pada parameter yang diteruskan.

update() Metode

Berikut ini contoh update() metode.

Pertama, mari pilih catatan untuk diperbarui:

db.musicians.find({ _id: 6 }).pretty()

Hasil:

{
	"_id" : 6,
	"name" : "Jeff Martin",
	"instrument" : "Vocals",
	"born" : 1969
}

Jeff sebenarnya melakukan lebih dari sekadar bernyanyi. Jadi mari kita tambahkan beberapa instrumen lagi. Kami akan menggunakan $set operator untuk memperbarui satu bidang.

db.musicians.update(
        { _id: 6 }, 
        { $set:{ instrument : [ "Vocals", "Guitar", "Sitar" ] } }
    )

Hasil:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Sekarang jika kita melakukan query lain, kita melihat bahwa dokumen telah diperbarui seperti yang ditentukan:

db.musicians.find({ _id: 6 }).pretty()

Hasil:

{
	"_id" : 6,
	"name" : "Jeff Martin",
	"instrument" : [
		"Vocals",
		"Guitar",
		"Sitar"
	],
	"born" : 1969
}

Beberapa opsi lainnya:

  • Jika kolom tidak ada, $set operator akan menambahkan bidang baru dengan nilai yang ditentukan, asalkan bidang baru tersebut tidak melanggar batasan jenis.
  • Anda juga dapat menggunakan { upsert: true } untuk membuat dokumen baru saat tidak ada dokumen yang cocok dengan kueri.
  • Anda dapat menggunakan { multi: true } untuk memperbarui beberapa dokumen yang memenuhi kriteria kueri. Secara default, opsi ini disetel ke false , jadi hanya satu dokumen yang diperbarui jika Anda tidak menyetelnya ke true .

The save() Metode

save() metode adalah persilangan antara update() dan insert() . Saat Anda menggunakan save() metode, jika dokumen ada, itu akan diperbarui. Jika tidak ada, itu akan dibuat.

Jika Anda tidak menentukan _id bidang, MongoDB akan membuat dokumen dengan _id yang berisi ObjectId nilai (sesuai insert() ).

Jika Anda menentukan _id bidang, ia melakukan pembaruan dengan { upsert: true } , artinya, ini membuat dokumen baru jika tidak ada dokumen yang cocok dengan kueri.

Saat ini kami tidak memiliki dokumen apa pun di produser our koleksi. Mari kita buat satu menggunakan save() metode:

db.producers.save({ _id: 1, name: "Bob Rock" })

Hasil:

WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 1 })

Sekarang jika kita mencari produsen koleksi, kami melihat catatan kami yang baru dibuat:

db.producers.find()

Hasil:

{ "_id" : 1, "name" : "Bob Rock" }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Upsert massal di MongoDB menggunakan luwak

  2. Skema MongoDB yang Benar untuk data agregat

  3. Bagaimana Otomasi Basis Data MongoDB Meningkatkan Keamanan

  4. Perintah dropIndexes MongoDB

  5. urutkan berdasarkan panjang string di Mongodb/pymongo