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

Bagaimana Operator Pembaruan $set Bekerja di MongoDB

MongoDB $set operator pembaruan menggantikan nilai bidang dengan nilai yang ditentukan.

Ini digunakan bersama dengan operasi pembaruan, misalnya saat menggunakan update() metode untuk memperbarui dokumen.

Contoh

Misalkan kita memiliki koleksi yang disebut dogs dengan dokumen berikut:

{ "_id" : 1, "name" : "Wag", "weight" : 20 }

Dan misalkan kita ingin mengubah berat badan anjing. Kita dapat menjalankan update() berikut ini:perintah untuk memperbarui bobot:

db.dogs.update(
  { _id: 1 },
  {
     $set: { weight: 30 }
  }
)

Ini akan menghasilkan output berikut:

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

Yang memberi tahu kita bahwa satu dokumen dicocokkan dan dimodifikasi.

Yuk cek koleksinya:

db.dogs.find()

Hasil:

{ "_id" : 1, "name" : "Wag", "weight" : 30 }

Kita dapat melihat bahwa bobot telah diperbarui ke nilai yang ditentukan.

Ini juga memungkinkan untuk menambah nilai dengan jumlah yang ditentukan, tetapi untuk melakukannya kita perlu menggunakan $inc operator alih-alih $set .

Tapi artikel ini adalah tentang $set operator, jadi mari kita lanjutkan.

Saat Bidang Tidak Ada

Jika bidang yang Anda coba perbarui tidak ada, bidang tersebut akan ditambahkan ke dokumen dengan nilai yang ditentukan.

Contoh:

db.dogs.update(
  { _id: 1 },
  {
     $set: { height: 40 }
  }
)

Keluaran:

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

Kita dapat melihat bahwa satu dokumen dicocokkan dan dimodifikasi.

Yuk cek lagi koleksinya.

db.dogs.find()

Hasil:

{ "_id" : 1, "name" : "Wag", "weight" : 30, "height" : 40 }

Jadi sekarang dokumen menyertakan height bidang dengan nilai yang ditentukan.

Dokumen Tersemat

Anda dapat memperbarui nilai dalam dokumen yang disematkan dengan menggunakan notasi titik. Jika jalur yang ditentukan belum ada, jalur tersebut akan dibuat.

Contoh:

db.dogs.update(
  { _id: 1 },
  {
     $set: { 
       "meals.breakfast": "Fish", 
       "meals.lunch": "Chicken", 
       "meals.dinner": "Beef" 
       }
  }
)

Keluaran:

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

Mari gunakan findOne() untuk mengembalikan dokumen:

db.dogs.findOne()

Hasil:

{
	"_id" : 1,
	"name" : "Wag",
	"weight" : 30,
	"height" : 40,
	"meals" : {
		"breakfast" : "Fish",
		"dinner" : "Beef",
		"lunch" : "Chicken"
	}
}

Kita dapat melihat bahwa dokumen yang disematkan telah ditambahkan seperti yang ditentukan.

Array

Anda dapat memperbarui data dalam array dengan menggunakan notasi titik saat menentukan indeks elemen yang ingin Anda perbarui.

Misalkan kita memiliki dokumen berikut:

{
	"_id" : 1,
	"name" : "Wag",
	"awards" : [
		"Top Dog",
		"Best Dog",
		"Biggest Dog"
	]
}

Mari perbarui dua elemen larik, dan nama anjing.

db.dogs.update({ 
    _id: 1 
    }, { 
        $set: { 
            "name": "Bark",
            "awards.0": "Bottom Dog", 
            "awards.1": "Worst Dog"
        } 
})

Hasil:

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

Kita dapat melihat bahwa satu dokumen dicocokkan dan dimodifikasi.

Dan sekarang lihat dokumennya.

db.dogs.findOne()

Hasil:

{
	"_id" : 1,
	"name" : "Bark",
	"awards" : [
		"Bottom Dog",
		"Worst Dog",
		"Biggest Dog"
	]
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Perbarui atau Sisipkan objek dalam array

  2. MongoDB $rtrim

  3. Mesin Penemuan Dan Pemantauan Server sudah tidak digunakan lagi

  4. Hal-Hal Utama yang Harus Dipantau di MongoDB

  5. Memvalidasi keunikan dokumen yang disematkan yang dicakup oleh induknya di luwak