MongoDB - अपडेट दस्तावेज़

MongoDB के update() तथा save()किसी संग्रह में दस्तावेज़ को अद्यतन करने के लिए विधियों का उपयोग किया जाता है। अद्यतन () विधि मौजूदा दस्तावेज़ में मूल्यों को अपडेट करती है जबकि सहेजें () विधि मौजूदा दस्तावेज़ को सहेजने () विधि में पारित दस्तावेज़ के साथ बदल देती है।

MongoDB अपडेट () विधि

अद्यतन () विधि मौजूदा दस्तावेज़ में मूल्यों को अपडेट करती है।

वाक्य - विन्यास

का मूल सिंटैक्स update() विधि इस प्रकार है -

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

उदाहरण

विचार करें कि mycol संग्रह में निम्नलिखित डेटा है।

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

निम्नलिखित उदाहरण दस्तावेजों के नए शीर्षक 'न्यू मोंगोबीडी ट्यूटोरियल' को सेट करेंगे, जिसका शीर्षक 'मोंगोडीबी अवलोकन' है।

>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"}
>

डिफ़ॉल्ट रूप से, MongoDB केवल एक दस्तावेज़ को अपडेट करेगा। कई दस्तावेज़ों को अपडेट करने के लिए, आपको एक पैरामीटर 'मल्टी' को सही पर सेट करना होगा।

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

MongoDB सहेजें () विधि

save() विधि मौजूदा दस्तावेज़ को सहेजने () पद्धति में नए दस्तावेज़ के साथ बदल देती है।

वाक्य - विन्यास

MongoDB का मूल सिंटैक्स save() विधि नीचे दी गई है -

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

उदाहरण

निम्नलिखित उदाहरण दस्तावेज़ को _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"}
>

MongoDB findOneAndUpdate () विधि

findOneAndUpdate() विधि मौजूदा दस्तावेज़ में मूल्यों को अपडेट करती है।

वाक्य - विन्यास

का मूल सिंटैक्स findOneAndUpdate() विधि इस प्रकार है -

>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)

उदाहरण

मान लें कि हमने empDetails नाम से एक संग्रह बनाया है और उसमें तीन दस्तावेज़ डाले हैं जैसा कि नीचे दिखाया गया है -

> 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"
		}
	]
)

उदाहरण के बाद 'राधिका' नाम के साथ दस्तावेज़ की आयु और ईमेल मान अपडेट किए गए हैं।

> 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 अपडेटऑन () विधि

यह विधियाँ किसी एकल दस्तावेज़ को अद्यतन करती हैं जो दिए गए फ़िल्टर से मेल खाता है।

वाक्य - विन्यास

अपडेटऑन () पद्धति का मूल सिंटैक्स इस प्रकार है -

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

उदाहरण

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

MongoDB अपडेटमनी () विधि

अपडेटमनी () विधि उन सभी दस्तावेजों को अपडेट करती है जो दिए गए फ़िल्टर से मेल खाते हैं।

वाक्य - विन्यास

अपडेटमनी () पद्धति का मूल सिंटैक्स इस प्रकार है -

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

उदाहरण

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

आप अद्यतन मान देख सकते हैं यदि आप नीचे बताए अनुसार खोज विधि का उपयोग करके दस्तावेज़ की सामग्री प्राप्त करते हैं -

> 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" }
>