MongoDB - Perbarui Dokumen

MongoDB update() dan save()metode digunakan untuk memperbarui dokumen menjadi koleksi. Metode update () memperbarui nilai dalam dokumen yang ada sementara metode save () menggantikan dokumen yang ada dengan dokumen yang diteruskan dalam metode save ().

Metode MongoDB Update ()

Metode update () memperbarui nilai dalam dokumen yang ada.

Sintaksis

Sintaks dasar update() metode adalah sebagai berikut -

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

Contoh

Pertimbangkan koleksi mycol memiliki data berikut.

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

Contoh berikut akan menetapkan judul baru 'Tutorial MongoDB Baru' dari dokumen yang judulnya adalah 'Ikhtisar MongoDB'.

>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>db.mycol.find()
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"New MongoDB Tutorial"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
>

Secara default, MongoDB hanya akan memperbarui satu dokumen. Untuk memperbarui banyak dokumen, Anda perlu menyetel parameter 'multi' menjadi true.

>db.mycol.update({'title':'MongoDB Overview'},
   {$set:{'title':'New MongoDB Tutorial'}},{multi:true})

Metode Penyimpanan MongoDB ()

Itu save() metode menggantikan dokumen yang ada dengan dokumen baru yang diteruskan dalam metode save ().

Sintaksis

Sintaks dasar MongoDB save() metode ditunjukkan di bawah ini -

>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

Contoh

Contoh berikut akan mengganti dokumen dengan _id '5983548781331adf45ec5'.

>db.mycol.save(
   {
      "_id" : ObjectId("507f191e810c19729de860ea"), 
		"title":"Tutorials Point New Topic",
      "by":"Tutorials Point"
   }
)
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id" : ObjectId("507f191e810c19729de860ea")
})
>db.mycol.find()
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"Tutorials Point New Topic",
   "by":"Tutorials Point"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"NoSQL Overview"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"Tutorials Point Overview"}
>

Metode findOneAndUpdate () MongoDB

Itu findOneAndUpdate() metode memperbarui nilai-nilai dalam dokumen yang ada.

Sintaksis

Sintaks dasar findOneAndUpdate() metode adalah sebagai berikut -

>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)

Contoh

Asumsikan kami telah membuat koleksi bernama empDetails dan memasukkan tiga dokumen di dalamnya seperti yang ditunjukkan di bawah ini -

> db.empDetails.insertMany(
	[
		{
			First_Name: "Radhika",
			Last_Name: "Sharma",
			Age: "26",
			e_mail: "[email protected]",
			phone: "9000012345"
		},
		{
			First_Name: "Rachel",
			Last_Name: "Christopher",
			Age: "27",
			e_mail: "[email protected]",
			phone: "9000054321"
		},
		{
			First_Name: "Fathima",
			Last_Name: "Sheik",
			Age: "24",
			e_mail: "[email protected]",
			phone: "9000054321"
		}
	]
)

Contoh berikut mengupdate usia dan nilai email dokumen dengan nama 'Radhika'.

> db.empDetails.findOneAndUpdate(
	{First_Name: 'Radhika'},
	{ $set: { Age: '30',e_mail: '[email protected]'}}
)
{
	"_id" : ObjectId("5dd6636870fb13eec3963bf5"),
	"First_Name" : "Radhika",
	"Last_Name" : "Sharma",
	"Age" : "30",
	"e_mail" : "[email protected]",
	"phone" : "9000012345"
}

MongoDB updateOne ()

Metode ini memperbarui satu dokumen yang cocok dengan filter yang diberikan.

Sintaksis

Sintaks dasar metode updateOne () adalah sebagai berikut -

>db.COLLECTION_NAME.updateOne(<filter>, <update>)

Contoh

> db.empDetails.updateOne(
	{First_Name: 'Radhika'},
	{ $set: { Age: '30',e_mail: '[email protected]'}}
)
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 0 }
>

MongoDB updateMany ()

Metode updateMany () memperbarui semua dokumen yang cocok dengan filter yang diberikan.

Sintaksis

Sintaks dasar metode updateMany () adalah sebagai berikut -

>db.COLLECTION_NAME.update(<filter>, <update>)

Contoh

> db.empDetails.updateMany(
	{Age:{ $gt: "25" }}, { $set: { Age: '00'}}
)
{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

Anda dapat melihat nilai yang diperbarui jika Anda mengambil isi dokumen menggunakan metode find seperti yang ditunjukkan di bawah ini -

> db.empDetails.find()
{ "_id" : ObjectId("5dd6636870fb13eec3963bf5"), "First_Name" : "Radhika", "Last_Name" : "Sharma", "Age" : "00", "e_mail" : "[email protected]", "phone" : "9000012345" }
{ "_id" : ObjectId("5dd6636870fb13eec3963bf6"), "First_Name" : "Rachel", "Last_Name" : "Christopher", "Age" : "00", "e_mail" : "[email protected]", "phone" : "9000054321" }
{ "_id" : ObjectId("5dd6636870fb13eec3963bf7"), "First_Name" : "Fathima", "Last_Name" : "Sheik", "Age" : "24", "e_mail" : "[email protected]", "phone" : "9000054321" }
>