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

Mongoimport --jsonArray . पर उप-दस्तावेजों पर _id बनाएं

नहीं।

एक ObjectId जनरेट करने के लिए नहीं, लेकिन आप JSON में एक ObjectId को निम्नलिखित नोटेशन के साथ शामिल कर सकते हैं:

{ "test" : { "$oid" : "5519e8ac996ef7f4636bfaec" } }

यह test . नामक एक फ़ील्ड बनाएगा मान के साथ ObjectId("5519e8ac996ef7f4636bfaec") . कुंजी का मान $oid एक वैध ObjectId होना आवश्यक है।

हां, यही आपको ObjectId मान जेनरेट करने की आवश्यकता होगी। आप या तो एक छोटी स्क्रिप्ट लिख सकते हैं, उदाहरण के लिए, आयात करने के लिए पायथन ड्राइवर और इसके हिस्से के रूप में ObjectId उत्पन्न करें, या mongoimport का उपयोग करें और फिर संग्रह को स्कैन करें और प्रत्येक उप-दस्तावेज़ को ObjectId के साथ अपडेट करें:

> db.test.find()
{ "_id" : ObjectId("5519e8ac996ef7f4636bfaec"), "a" : [ { "x" : 1 }, { "y" : 2 } ] } 
> db.test.find().forEach(function(doc) {
    for (var i = 0; i < doc.a.length; i++) {
        doc.a[i]._id = ObjectId()
    }
    db.test.update({ "_id" : doc._id }, doc)
} )

ध्यान दें, जब तक कि उप-दस्तावेज़ पर _id/ObjectId रखने का कोई विशिष्ट कारण न हो, जैसे _id किसी अन्य दस्तावेज़ का संदर्भ है, प्रत्येक उप-दस्तावेज़ पर ऑब्जेक्ट आईडी डालना न तो आवश्यक है और न ही वांछनीय है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब और एक्सप्रेस शुरू करने का सही तरीका?

  2. MongoDB संग्रह में दिए गए मानदंडों से मेल खाने वाले दस्तावेज़ और एकल उप-दस्तावेज़ कैसे खोजें

  3. डार्कशील्ड के साथ MongoDB, Cassandra, और Elasticsearch में मास्किंग PII:…

  4. इंटरफ़ेस में एनोटेटेड @Query विधियों को ओवरराइड किए बिना MongoRepository को कैसे अनुकूलित करें?

  5. MongoDB में दो चरण की प्रतिबद्धता