Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में _id फ़ील्ड कैसे अपडेट करें

MongoDB में _id फ़ील्ड को सीधे अपडेट नहीं किया जा सकता

MongoDB में एक बार डॉक्यूमेंट बन जाने के बाद उसका _id फ़ील्ड अपरिवर्तनीय (immutable) होता है। आप सीधे update() या $set का उपयोग करके _id नहीं बदल सकते। हालांकि, आप एक वर्कअराउंड का उपयोग कर सकते हैं: डॉक्यूमेंट को पढ़ें, उसका _id बदलें, नया डॉक्यूमेंट सेव करें, और पुराने को हटा दें।

उदाहरण: संग्रह बनाना

> db.updatingIdFieldDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5ce271bb36e8b255a5eee949") }

डॉक्यूमेंट देखना

> db.updatingIdFieldDemo.find();
{ "_id": ObjectId("5ce271bb36e8b255a5eee949"), "StudentName": "Chris" }

_id बदलने की प्रक्रिया

  1. डॉक्यूमेंट को एक वेरिएबल में स्टोर करें।
  2. उस वेरिएबल के _id को नए मान पर सेट करें।
  3. save() मेथड से नया डॉक्यूमेंट सेव करें (यह नया _id के साथ नया डॉक्यूमेंट बनाएगा)।
  4. पुराने _id वाले डॉक्यूमेंट को remove() से हटा दें।
> var myDocument = db.updatingIdFieldDemo.findOne({StudentName:"Chris"});
> myDocument._id = 101;
101
> db.updatingIdFieldDemo.save(myDocument);
WriteResult({ "nMatched": 0, "nUpserted": 1, "nModified": 0, "_id": 101 })
> db.updatingIdFieldDemo.remove({_id:ObjectId("5ce271bb36e8b255a5eee949")});
WriteResult({ "nRemoved": 1 })

परिणाम जांचना

> db.updatingIdFieldDemo.find();
{ "_id": 101, "StudentName": "Chris" }

अब डॉक्यूमेंट का _id ObjectId के बजाय कस्टम मान 101 है।

सावधानी: यह तरीका एप्लिकेशन लेवल पर करें और ध्यान रखें कि _id यूनिक होना चाहिए। प्रोडक्शन में _id बदलना दुर्लभ है और सावधानी से करना चाहिए।

  1. - MongoDB में सशर्त अपडेट करना

    MongoDB में update() और $set का उपयोग करके सशर्त अपडेट करना MongoDB में किसी शर्त के आधार पर दस्तावेज़ को अपडेट करने के लिए update() मेथड के साथ क्वेरी फिल्टर और $set ऑपरेटर का उपयोग करें। upsert: true विकल्प दस्तावेज़ न मिलने पर नया दस्तावेज़ बनाता है। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.dem

  1. - MongoDB में रिकॉर्ड कैसे अपडेट करें?

    रिकॉर्ड अपडेट करने के लिए, आपको _id के आधार पर अपडेट करना होगा। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo458.insertOne( {_id:101,"Name":"David" } ); { "acknowledged" : true, "insertedId" : 101 } > db.demo458.insertOne( {_id:102,"Name":

  1. - MongoDB Query - केवल Specific Field Value Update करना

    आइए उदाहरण देखते हैं और documents के साथ collection बनाते हैं: Collection बनाना > db.demo557.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e8f28e954b4472ed3e8e864) } > db.demo557.insertOne({Name:David}); { acknowledged : true, insertedId : ObjectId(5e8f28ee54b4472ed3e