MongoDB में update() बनाम save(): प्रदर्शन तुलना
MongoDB में दस्तावेज़ अपडेट करने के लिए update() मेथड save() से तेज़ और अधिक कुशल है।
क्यों update() बेहतर है?
- update(): केवल निर्दिष्ट फ़ील्ड्स को संशोधित करता है (आंशिक अपडेट)। नेटवर्क ट्रैफ़िक और लिखने का ओवरहेड कम होता है।
- save(): पूरे दस्तावेज़ को बदल देता है। यदि
_idमौजूद है, तो यह पूर्ण प्रतिस्थापन करता है; यदि नहीं, तो सम्मिलित करता है। यह अनावश्यक रूप से पूरे दस्तावेज़ को फिर से लिखता है।
उदाहरण: update() का उपयोग
> db.demo320.insertOne({"Name": "Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e50ee51f8647eb59e562066") }
> db.demo320.insertOne({"Name": "Robert"});
{ "acknowledged": true, "insertedId": ObjectId("5e50ee55f8647eb59e562067") }
> db.demo320.insertOne({"Name": "Mike"});
{ "acknowledged": true, "insertedId": ObjectId("5e50ee59f8647eb59e562068") }
> db.demo320.insertOne({"Name": "Sam"});
{ "acknowledged": true, "insertedId": ObjectId("5e50ee5bf8647eb59e562069") }
एक फ़ील्ड अपडेट करना
> db.demo320.update({Name: "Mike"}, {$set: {Name: "Bob"}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
परिणाम
> db.demo320.find();
{ "_id": ObjectId("5e50ee51f8647eb59e562066"), "Name": "Chris" }
{ "_id": ObjectId("5e50ee55f8647eb59e562067"), "Name": "Robert" }
{ "_id": ObjectId("5e50ee59f8647eb59e562068"), "Name": "Bob" }
{ "_id": ObjectId("5e50ee5bf8647eb59e562069"), "Name": "Sam" }
केवल "Mike" का नाम "Bob" में बदला गया। $set ऑपरेटर यह सुनिश्चित करता है कि केवल लक्षित फ़ील्ड संशोधित हो। नोट: आधुनिक MongoDB ड्राइवर्स में updateOne(), updateMany(), या findOneAndUpdate() का उपयोग करने की अनुशंसा की जाती है क्योंकि update() विरासत मेथड है।