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

mongoimport के साथ MongoDB में CSV फ़ाइल आयात करें

MongoDB का उपयोग करते समय, आप mongoimport . का उपयोग कर सकते हैं संग्रह में दस्तावेज़ आयात करने के लिए। mongoimport एक कमांड लाइन उपयोगिता है जो विस्तारित JSON, CSV, या TSV फ़ाइल से सामग्री आयात करती है। आयात फ़ाइल mongoexport . द्वारा बनाई जा सकती थी या कुछ अन्य निर्यात उपयोगिता।

यह लेख MongoDB में CSV फ़ाइल आयात करने के उदाहरण प्रस्तुत करता है।

उदाहरण

मान लीजिए कि हमारे पास निम्न CSV फ़ाइल है जिसे pets.csv . कहा जाता है :

_id,name,type
1,"Wag","Dog"
2,"Bark","Dog"
3,"Meow","Cat"

निम्न आदेश CSV फ़ाइल को MongoDB में आयात करता है:

mongoimport --db=PetHotel --type=csv --headerline --file=pets.csv

इस मामले में, मैंने इसे आयात करने के लिए एक संग्रह निर्दिष्ट नहीं किया, इसलिए इसने फ़ाइल के समान नाम के साथ एक संग्रह बनाया (pets )।

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

आइए संग्रह पर एक नज़र डालें।

db.pets.find()

परिणाम:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

हम देख सकते हैं कि दस्तावेज़ अपेक्षित रूप से आयात किए गए थे।

बिना कॉलम हेडर वाली CSV फ़ाइलें

पिछले उदाहरण में, हमने --headerline . का उपयोग किया था पैरामीटर निर्दिष्ट करने के लिए कि फ़ील्ड नामों के लिए पहली पंक्ति का उपयोग किया जाना चाहिए।

अगर आपकी CSV फ़ाइल में हेडर लाइन नहीं है, तो आपको --fields में से किसी एक का इस्तेमाल करना होगा पैरामीटर या --fieldFile फ़ील्ड नाम निर्दिष्ट करने के लिए पैरामीटर।

तो, कल्पना कीजिए कि हमारी CSV फ़ाइल में कॉलम लाइन नहीं थी, और इसके बजाय यह इस तरह दिखती थी:

1,"Wag","Dog"
2,"Bark","Dog"
3,"Meow","Cat"

फिर हम फ़ाइल को आयात करने के लिए निम्न कमांड का उपयोग कर सकते हैं:

mongoimport --db=PetHotel --type=csv --fields=_id,name,type --file=pets.csv

इसका परिणाम पिछले उदाहरण जैसा ही है।

संग्रह का नाम निर्दिष्ट करें

आप --collection का उपयोग कर सकते हैं (या -c ) फ़ाइल को आयात करने के लिए संग्रह निर्दिष्ट करने के लिए पैरामीटर।

यहां --collection का उपयोग करने का एक उदाहरण दिया गया है एक ही फ़ाइल को भिन्न संग्रह में आयात करने के लिए पैरामीटर:

mongoimport --db=PetHotel --collection=pets2 --type=csv --fields=_id,name,type --file=pets.csv

यदि संग्रह पहले से मौजूद नहीं है, तो इसे बनाया जाएगा। यदि यह पहले से मौजूद है, तो आयात परिणाम आपके द्वारा उपयोग किए जा रहे मोड पर निर्भर करेगा (इस पर बाद में)।

हमारे मामले में, यहां नया बनाया गया संग्रह कैसा दिखता है:

db.pets2.find()

परिणाम:

{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }

आयात करने से पहले संग्रह को छोड़ दें

आप --drop का उपयोग कर सकते हैं किसी भी मौजूदा संग्रह को उसी नाम से छोड़ने के लिए पैरामीटर जिसे आप बनाने/आयात करने का प्रयास कर रहे हैं।

कल्पना कीजिए कि हमारे पास एक दूसरी फ़ाइल है, जिसे pets2.csv . कहा जाता है , निम्नलिखित दस्तावेज़ के साथ:

_id,name,type,weight
4,"Bubbles","Fish",3

अगर मैं उस दस्तावेज़ को pets2 . में आयात करता हूं तो यहां क्या होता है? --drop का उपयोग करके संग्रह विकल्प:

mongoimport --db=PetHotel --collection=pets2 --type=csv --headerline --drop --file=pets2.csv

आउटपुट:

2021-01-03T15:05:40.281+1000	connected to: mongodb://localhost/
2021-01-03T15:05:40.284+1000	dropping: PetHotel.pets2
2021-01-03T15:05:40.336+1000	1 document(s) imported successfully. 0 document(s) failed to import.

यह हमें बताता है कि संग्रह हटा दिया गया था, और एक दस्तावेज़ आयात किया गया था।

आइए इस संग्रह पर एक नज़र डालें:

db.pets2.find()

परिणाम:

{ "_id" : 4, "name" : "Bubbles", "type" : "Fish", "weight" : 3 }

जैसा कि अपेक्षित था, हमारा नया दस्तावेज़ संग्रह में केवल एक ही है।

आयात मोड

कई आयात मोड हैं जिनका उपयोग आप mongoimport . के साथ कर सकते हैं . ये मोड निर्धारित करते हैं कि क्या होता है यदि संग्रह में पहले से मेल खाने वाले दस्तावेज़ हैं जिन्हें आप आयात करने का प्रयास कर रहे हैं।

मोड इस प्रकार हैं:

<थ>विवरण
मोड
insert यह डिफ़ॉल्ट मोड है। यह मोड आयात फ़ाइल से दस्तावेज़ सम्मिलित करता है। यदि संग्रह में मेल खाने वाला दस्तावेज़ पहले से मौजूद है, तो एक त्रुटि उत्पन्न होती है। एक मेल खाने वाला दस्तावेज़ वह होता है जिसमें एक ही अद्वितीय आईडी होती है (जैसे मेल खाने वाला _id फ़ील्ड) आयात फ़ाइल में एक दस्तावेज़ के रूप में।
upsert डेटाबेस में मौजूदा दस्तावेज़ों को आयात फ़ाइल से मेल खाने वाले दस्तावेज़ों से बदल देता है। अन्य सभी दस्तावेज़ सम्मिलित किए गए हैं।
merge मौजूदा दस्तावेज़ों को मर्ज करता है जो नए दस्तावेज़ के साथ आयात फ़ाइल में दस्तावेज़ से मेल खाते हैं। अन्य सभी दस्तावेज़ सम्मिलित किए गए हैं।
delete डेटाबेस में मौजूदा दस्तावेज़ों को हटाता है जो आयात फ़ाइल में किसी दस्तावेज़ से मेल खाते हैं। मेल न खाने वाले किसी भी दस्तावेज़ का कोई प्रभाव नहीं पड़ता है।

mongoimport . के आयात मोड देखें प्रत्येक मोड के उदाहरण के लिए।

mongoimport की जांच करें

mongoimport MongoDB डेटाबेस टूल्स पैकेज का हिस्सा है। MongoDB डेटाबेस टूल्स MongoDB के साथ काम करने के लिए कमांड-लाइन उपयोगिताओं का एक सूट है।

यदि आप सुनिश्चित नहीं हैं कि आपके पास MongoDB डेटाबेस टूल्स/mongoimport है या नहीं स्थापित है, जाँच करने के लिए अपने टर्मिनल या कमांड प्रॉम्प्ट में निम्न कमांड चलाने का प्रयास करें:

mongoimport --version

यदि आपके पास है, तो आपको संस्करण की जानकारी आदि देखनी चाहिए। यदि आपके पास यह नहीं है, तो आप इसे अपने सिस्टम पर स्थापित करने के लिए MongoDB वेबसाइट पर इंस्टॉलेशन निर्देशों का उपयोग कर सकते हैं।

कहां चलाएं mongoimport आदेश?

आपको mongoimport चलाने की जरूरत है आपके सिस्टम की कमांड लाइन (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो) से कमांड।

उन्हें mongo . से न चलाएं सीप।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब दस्तावेज़ को लॉक करना संभव नहीं है। अगर मुझे चाहिए तो क्या होगा?

  2. मोंगो - रूबी कनेक्शन समस्या

  3. मैं लाइव MongoDB डेटा को कैसे ब्राउज़ या क्वेरी कर सकता हूं?

  4. गुम तारीखों को रिकॉर्ड में भरें

  5. SQL में कॉलम के डेटा प्रकार की जांच कैसे करें