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

MongoDB संग्रह को CSV फ़ाइल में निर्यात करें

MongoDB डेटाबेस टूल्स में mongoexport . नामक एक उपयोगिता शामिल है जो आपको MongoDB डेटा को CSV या JSON फ़ाइल में निर्यात करने में सक्षम बनाता है।

यह लेख आपको mongoexport . का उपयोग करने का तरीका दिखाता है MongoDB संग्रह को CSV फ़ाइल में निर्यात करने के लिए।

सिंटैक्स

mongoexport . के लिए सिंटैक्स इस तरह जाता है:

mongoexport --collection=<coll> <options> <connection-string>

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

mongoexport न चलाएं mongo . से आदेश सीप।

संग्रह निर्यात करें

निम्न उदाहरण कोड MongoDB से एक संग्रह निर्यात करता है:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --out=data/pets.csv

यह pets . नामक संग्रह को निर्यात करता है PetHotel . से pets.csv . नामक फ़ाइल के लिए डेटाबेस data/ में फ़ोल्डर।

यदि फ़ोल्डर मौजूद नहीं है, तो इसे बनाया गया है। फ़ाइल के साथ ही। वैसे, यह मानता है कि निर्दिष्ट स्थान पर फ़ाइल लिखने में कोई अनुमति समस्या नहीं है।

इस उदाहरण में मैंने कोई होस्ट, पोर्ट, प्रमाणीकरण आदि निर्दिष्ट नहीं किया है, इसलिए यह डिफ़ॉल्ट लोकलहोस्ट पोर्ट नंबर 27017 पर चल रहे MongoDB इंस्टेंस से संग्रह को निर्यात करता है। ।

नीचे हमारे द्वारा प्रदान किए गए मापदंडों की व्याख्या है।

<थ>विवरण
पैरामीटर
--db
या
-d
उस डेटाबेस को निर्दिष्ट करता है जिसमें वह संग्रह होता है जिसे हम निर्यात करना चाहते हैं। इस मामले में, डेटाबेस को PetHotel . कहा जाता है .
यह पैरामीटर वैकल्पिक रूप से -d . का उपयोग करके पारित किया जा सकता है (--db . के बजाय )।
--collection
या
-c
उस संग्रह को निर्दिष्ट करता है जिसे हम निर्यात करना चाहते हैं। इस मामले में, संग्रह को pets . कहा जाता है .
यह पैरामीटर वैकल्पिक रूप से -c . के रूप में पारित किया जा सकता है (--collection . के बजाय )।
--type निर्यात की गई फ़ाइल प्रकार निर्दिष्ट करता है। इस मामले में हम csv . निर्दिष्ट करते हैं इसे CSV फ़ाइल में निर्यात करने के लिए।
--fields उन फ़ील्ड को निर्दिष्ट करता है जिन्हें हम निर्यात करना चाहते हैं। हमारे पास संग्रह में सभी फ़ील्ड निर्यात करने का विकल्प है, या बस कुछ को। आपको यहां प्रत्येक को अल्पविराम से अलग करके सूचीबद्ध करने की आवश्यकता है। सीएसवी को निर्यात करते समय, फ़ील्ड नाम निर्दिष्ट करना एक आवश्यकता है। आप --fields . के द्वारा ऐसा कर सकते हैं पैरामीटर या --fieldFile पैरामीटर (उस पर बाद में)।
--out निर्यात की गई फ़ाइल का नाम निर्दिष्ट करता है और यह कहां स्थित होगा। यदि आप फ़ाइल नाम निर्दिष्ट नहीं करते हैं, mongoexport मानक आउटपुट के लिए डेटा लिखता है (stdout )।

निर्यात की गई फ़ाइल की जांच करें

आइए सत्यापित करें कि निर्यात कार्रवाई अपेक्षित रूप से काम कर रही है।

सबसे पहले, आइए मूल संग्रह की जांच करें।

use PetHotel
db.pets.find()

परिणाम:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

इसलिए हम देख सकते हैं कि 7 पालतू जानवर हैं, सभी समान फ़ील्ड वाले हैं जिन्हें हमने अपने निर्यात ऑपरेशन में निर्दिष्ट किया है।

अब एक्सपोर्ट की गई फाइल को खोलें pets.csv अंदर क्या है देखने के लिए:

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

ठीक है, इसलिए सभी डेटा अपेक्षित रूप से निर्यात की गई फ़ाइल में है।

कॉलम हेडर हटाएं

आप देखेंगे कि पिछले उदाहरण में निर्यात की गई फ़ाइल में कॉलम हेडर शामिल थे।

आपके पास फ़ाइल को बिना निर्यात करने का विकल्प भी है कॉलम हेडर। ऐसा करने के लिए, --noHeaderLine . का उपयोग करें पैरामीटर।

उदाहरण:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --noHeaderLine --out=data/pets.csv

अब जब मैं निर्यात की गई फ़ाइल खोलता हूं, तो कोई कॉलम हेडर नहीं होता है:

1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

फ़ील्ड नामों के लिए फ़ाइल का उपयोग करें

आप --field . को बदल सकते हैं --fieldFile . के साथ पैरामीटर फ़ाइल का नाम निर्दिष्ट करने के लिए पैरामीटर जिसमें वे फ़ील्ड नाम हैं जिन्हें आप निर्यात करना चाहते हैं।

mongoexport --db=PetHotel --collection=pets --type=csv --fieldFile=data/pets_fields.txt --out=data/pets.csv

फ़ील्ड वाली फ़ाइल में फ़ील्ड सूचीबद्ध होनी चाहिए, प्रति पंक्ति एक।

यहाँ क्या है pets_fields.txt इस उदाहरण के लिए फ़ाइल इस तरह दिखती है:

_id
name
type
weight

इसके परिणामस्वरूप निर्यात की गई फ़ाइल की सामग्री इस तरह दिख रही है:

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

कॉलम का क्रम बदलना

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

उदाहरण के लिए, यह कोड:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,weight,type,name --out=data/pets.csv

निम्न CSV फ़ाइल में परिणाम:

_id,weight,type,name
1,20,Dog,Wag
2,10,Dog,Bark
3,7,Cat,Meow
4,8,Cat,Scratch
5,3,Bat,Bruce
6,17,Dog,Fetch
7,30,Dog,Jake

और निम्नलिखित:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=type,name,weight,_id --out=data/pets.csv

इसमें परिणाम:

type,name,weight,_id
Dog,Wag,20,1
Dog,Bark,10,2
Cat,Meow,7,3
Cat,Scratch,8,4
Bat,Bruce,3,5
Dog,Fetch,17,6
Dog,Jake,30,7

पहुंच नियंत्रण/प्रमाणीकरण

यदि आप लोकलहोस्ट का उपयोग नहीं कर रहे हैं, तो आप --host . का उपयोग कर सकते हैं होस्ट निर्दिष्ट करने के लिए पैरामीटर, और --port पोर्ट निर्दिष्ट करने के लिए। आप --username . का भी उपयोग कर सकते हैं उपयोगकर्ता नाम निर्दिष्ट करने के लिए पैरामीटर और --password पासवर्ड के लिए। यदि आप पासवर्ड पैरामीटर को छोड़ देते हैं, तो आपको इसके लिए संकेत दिया जाएगा। एक --authenticationDatabase भी है प्रमाणीकरण डेटाबेस निर्दिष्ट करने के लिए पैरामीटर जहां उपयोगकर्ता बनाया गया है।

उदाहरण:

mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --out=data/pets.csv

mongoexport की जांच करें

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

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

mongoexport --version

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

कहां कमांड चलाएं?

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

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में वाइल्डकार्ड इंडेक्स में विशिष्ट फ़ील्ड को बाहर करें

  2. MongoDB प्रारंभ करने में असमर्थ। त्रुटि:Addr पहले से उपयोग में है

  3. मोंगोडब में बाल वस्तुओं से कैसे पूछें?

  4. MongoDB में arrayFilters पैरामीटर कैसे काम करता है

  5. डॉकर का उपयोग करके MongoDB को तैनात करना