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
. से न चलाएं सीप।