MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में _id कैसे निकालें और प्राथमिक कुंजी के रूप में किसी अन्य फ़ील्ड से बदलें?

मोंगोडब में प्रत्येक दस्तावेज़ अद्वितीय होना चाहिए, इसलिए आपको आईडी के रूप में उपयोग करने के लिए एक अद्वितीय फ़ील्ड की आवश्यकता है। यदि आप एक प्रदान नहीं करते हैं, तो मोंगोडब स्वचालित रूप से आपके लिए एक प्रदान करेगा। हालांकि, यदि आप किसी भी कारण से कस्टम आईडी देना चाहते हैं (उनमें से एक होने के कारण क्वेरी प्रदर्शन में सुधार करें), तो आप इसे मैन्युअल रूप से कर सकते हैं। ये रहे मेरे सुझाव:

यदि आप एक नया दस्तावेज़ सम्मिलित कर रहे हैं, तो आप मैन्युअल रूप से _id फ़ील्ड सेट कर सकते हैं जैसे:

doc._id = "12312312" //(Or whichever function to generate id you have)
doc.save(...)

लेकिन जब आपके पास पहले से ही डेटाबेस में एक दस्तावेज़ है, तो आप इसे अब और संशोधित नहीं कर सकते हैं। आप क्या कर सकते हैं दस्तावेज़ की एक प्रति बनाने के लिए, उसी डेटा के साथ एक नया दस्तावेज़ सहेजें और पुराने को मिटा दें:

// Fetch the documents
docs = db.clients.find({})

docs.forEach((doc) => {
   //For each field you copy the values
   new_doc.field = doc.field
   new_doc._id = //YOUR ID FUNCTION 

   // insert the document, using the new _id
   db.clients.insert(new_doc)

   // remove the document with the old _id
   db.clients.remove({_id: doc._id})
}

यह प्रश्न निम्न के जैसा है:

एक MongoDB दस्तावेज़ के _id को कैसे अपडेट करें?

आशा है कि मेरा उत्तर सहायक था



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्वार्कस मोंगोडब एकीकरण

  2. मोंगोडीबी और कोडइग्निटर

  3. DataImportHandler का उपयोग करके MongoDB और Solr को जोड़ने के चरण

  4. स्प्रिंग बूट + मोंगोडब + ऊंट मार्ग कनेक्शन मुद्दा

  5. नेवला नेस्टेड स्कीमा बनाम नेस्टेड मॉडल