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