runCommand के साथ getlasterror
MongoDB में अपडेट ऑपरेशन के बाद, प्रभावित दस्तावेज़ों की संख्या प्राप्त करने के लिए db.runCommand("getlasterror") का उपयोग किया जा सकता है (नोट: नए संस्करणों में WriteResult ऑब्जेक्ट सीधे nModified देता है, लेकिन यह विधि लीगेसी/कमांड-लाइन संदर्भ के लिए है)।
उदाहरण: डेटा डालना
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"David"});
...
(कुल 5 दस्तावेज़ डाले गए)
सभी दस्तावेज़ अपडेट करना
> db.getNumberOfUpdatedDocumentsDemo.update({}, {$set : {"StudentName" : "Carol"}}, true, true);
WriteResult({ "nMatched" : 5, "nUpserted" : 0, "nModified" : 5 })
पैरामीटर: {} (सभी दस्तावेज़), $set अपडेट, upsert: true, multi: true।
अपडेट की गई संख्या प्राप्त करना
> db.runCommand( "getlasterror" );
आउटपुट:
यहां
n: 5इंगित करता है कि 5 दस्तावेज़ अपडेट किए गए।आधुनिक विकल्प (MongoDB 2.6+)
आधुनिक ड्राइवर्स और शेल में,
updateManyयाupdateOneएकWriteResultयाUpdateResultऑब्जेक्ट लौटाते हैं जिसमें सीधेmodifiedCount(याnModified) होता है:db.collection.updateMany({}, { $set: { "StudentName": "Carol" } }) // रिटर्न: { "acknowledged": true, "matchedCount": 5, "modifiedCount": 5, ... }नोट:
getlasterrorकमांड मुख्य रूप से पुराने संस्करणों और विशिष्ट ड्राइवर कार्यान्वयन के लिए प्रासंगिक है। नए एप्लिकेशन में अपडेट मेथड के रिटर्न मान का उपयोग करें।