MongoDB डेटाबेस टूल्स में mongoexport . नामक एक उपयोगिता शामिल है जो आपको MongoDB डेटा को CSV या JSON फ़ाइल में निर्यात करने में सक्षम बनाता है।
इस उपयोगिता के साथ आप जो चीजें कर सकते हैं उनमें से एक निर्यात क्वेरी परिणाम है। यह लेख आपको mongoexport . का उपयोग करने का तरीका दिखाता है MongoDB क्वेरी परिणामों को CSV फ़ाइल में निर्यात करने के लिए।
सिंटैक्स
mongoexport . के लिए सिंटैक्स इस तरह जाता है:
mongoexport --collection=<coll> <options> <connection-string>
आपको mongoexport चलाने की जरूरत है आपके सिस्टम की कमांड लाइन (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो) से कमांड।
mongoexport न चलाएं mongo . से आदेश सीप।
उदाहरण
निम्न उदाहरण कोड किसी क्वेरी के परिणामों को CSV फ़ाइल में निर्यात करता है:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
यह एक क्वेरी निर्यात करता है जो pets . नामक संग्रह को क्वेरी करता है PetHotel . में डेटाबेस। क्वेरी dogs.csv . नामक फ़ाइल में निर्यात की जाती है data/ में फ़ोल्डर।
यदि फ़ोल्डर मौजूद नहीं है, तो इसे बनाया गया है। फ़ाइल के साथ ही। वैसे, यह मानता है कि निर्दिष्ट स्थान पर फ़ाइल लिखने में कोई अनुमति समस्या नहीं है।
इस उदाहरण में मैंने कोई होस्ट, पोर्ट, प्रमाणीकरण आदि निर्दिष्ट नहीं किया है, इसलिए यह डिफ़ॉल्ट लोकलहोस्ट पोर्ट नंबर 27017 पर चल रहे MongoDB इंस्टेंस से संग्रह को निर्यात करता है। ।
नीचे हमारे द्वारा प्रदान किए गए मापदंडों की व्याख्या है।
| पैरामीटर | <थ>विवरण|
|---|---|
--db या -d | उस डेटाबेस को निर्दिष्ट करता है जिस पर mongoexport चलाना है . इस मामले में, डेटाबेस को PetHotel . कहा जाता है . यह पैरामीटर वैकल्पिक रूप से -d . का उपयोग करके पारित किया जा सकता है (--db . के बजाय )। |
--collection या -c | उस संग्रह को निर्दिष्ट करता है जिसे हम निर्यात करना चाहते हैं (या उसके विरुद्ध क्वेरी चलाएँ)। इस मामले में, संग्रह को pets . कहा जाता है . यह पैरामीटर वैकल्पिक रूप से -c . के रूप में पारित किया जा सकता है (--collection . के बजाय )। |
--type | निर्यात की गई फ़ाइल प्रकार निर्दिष्ट करता है। इस मामले में हम csv . निर्दिष्ट करते हैं इसे CSV फ़ाइल में निर्यात करने के लिए। |
--fields | उन फ़ील्ड को निर्दिष्ट करता है जिन्हें हम निर्यात करना चाहते हैं। हमारे पास सभी क्षेत्रों या कुछ को निर्यात करने का विकल्प है। आपको यहां प्रत्येक को अल्पविराम से अलग करके सूचीबद्ध करने की आवश्यकता है। सीएसवी को निर्यात करते समय, फ़ील्ड नाम निर्दिष्ट करना एक आवश्यकता है। आप --fields . के द्वारा ऐसा कर सकते हैं पैरामीटर या --fieldFile पैरामीटर (उस पर बाद में)। |
--query या -q | उस क्वेरी को निर्दिष्ट करता है जिसके लिए हम निर्यात करना चाहते हैं। इसे सिंगल कोट्स में संलग्न किया जाना चाहिए (ताकि यह आपके शेल के साथ इंटरैक्ट न करे)। इस पैरामीटर को -q . का उपयोग करके भी पास किया जा सकता है । |
--out | निर्यात की गई फ़ाइल का नाम निर्दिष्ट करता है और यह कहां स्थित होगा। यदि आप फ़ाइल नाम निर्दिष्ट नहीं करते हैं, mongoexport मानक आउटपुट के लिए डेटा लिखता है (stdout )। |
निर्यात की गई फ़ाइल की जांच करें
आइए सत्यापित करें कि निर्यात कार्रवाई अपेक्षित रूप से काम कर रही है।
सबसे पहले, क्वेरी को मूल संग्रह के विरुद्ध चलाते हैं।
use PetHotel
db.pets.find({ "type": "Dog" }) परिणाम:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 } तो हम देख सकते हैं कि 4 कुत्ते हैं, सभी एक ही फ़ील्ड के साथ हैं जो हमने अपने निर्यात ऑपरेशन में निर्दिष्ट किए हैं।
अब एक्सपोर्ट की गई फाइल को खोलें dogs.csv अंदर क्या है देखने के लिए:
_id,name,type,weight 1,Wag,Dog,20 2,Bark,Dog,10 6,Fetch,Dog,17 7,Jake,Dog,30
ठीक है, इसलिए सभी डेटा अपेक्षित रूप से निर्यात की गई फ़ाइल में है।
कम फ़ील्ड निर्यात करें
आप --fields . के साथ कम फ़ील्ड निर्दिष्ट कर सकते हैं यदि आप चाहें तो पैरामीटर।
उदाहरण:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv परिणामी फ़ाइल:
name,weight Wag,20 Bark,10 Fetch,17 Jake,30
कॉलम हेडर हटाएं
आप देखेंगे कि पिछले उदाहरणों में निर्यात की गई फ़ाइल में कॉलम हेडर शामिल थे।
आपके पास फ़ाइल को बिना निर्यात करने का विकल्प भी है कॉलम हेडर। ऐसा करने के लिए, --noHeaderLine . का उपयोग करें पैरामीटर।
उदाहरण:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --noHeaderLine --out=data/dogs.csv अब जब मैं निर्यात की गई फ़ाइल खोलता हूं, तो कोई कॉलम हेडर नहीं होता है:
1,Wag,Dog,20 2,Bark,Dog,10 6,Fetch,Dog,17 7,Jake,Dog,30
फ़ील्ड नामों के लिए फ़ाइल का उपयोग करें
आप --field . को बदल सकते हैं --fieldFile . के साथ पैरामीटर फ़ाइल का नाम निर्दिष्ट करने के लिए पैरामीटर जिसमें वे फ़ील्ड नाम हैं जिन्हें आप निर्यात करना चाहते हैं।
mongoexport --db=PetHotel --collection=pets --type=csv --fieldFile=data/dogs_fields.txt --query='{ "type": "Dog" }' --out=data/dogs.csv फ़ील्ड वाली फ़ाइल में फ़ील्ड सूचीबद्ध होनी चाहिए, प्रति पंक्ति एक।
यहाँ क्या है dogs_fields.txt इस उदाहरण के लिए फ़ाइल इस तरह दिखती है:
name type weight
इसके परिणामस्वरूप निर्यात की गई फ़ाइल की सामग्री इस तरह दिख रही है:
name,type,weight Wag,Dog,20 Bark,Dog,10 Fetch,Dog,17 Jake,Dog,30
कॉलम का क्रम बदलना
आप फ़ील्ड के क्रम को निर्यात करने के लिए स्विच कर सकते हैं। उनका अंतर्निहित दस्तावेज़ के समान क्रम में होना आवश्यक नहीं है।
उदाहरण के लिए, यह कोड:
mongoexport --db=PetHotel --collection=pets --type=csv --fields=type,name,weight,_id --query='{ "type": "Dog" }' --out=data/dogs.csv निम्न CSV फ़ाइल में परिणाम:
type,name,weight,_id Dog,Wag,20,1 Dog,Bark,10,2 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 --query='{ "type": "Dog" }' --out=data/dogs.csv mongoexport की जांच करें
mongoexport MongoDB डेटाबेस टूल्स पैकेज का हिस्सा है। MongoDB डेटाबेस टूल्स MongoDB के साथ काम करने के लिए कमांड-लाइन उपयोगिताओं का एक सूट है।
यदि आप सुनिश्चित नहीं हैं कि आपके पास MongoDB डेटाबेस टूल्स/mongoexport है या नहीं स्थापित है, जाँच करने के लिए अपने टर्मिनल या कमांड प्रॉम्प्ट में निम्न कमांड चलाने का प्रयास करें:
mongoexport --version यदि आपके पास है, तो आपको संस्करण की जानकारी आदि देखनी चाहिए। यदि आपके पास यह नहीं है, तो आप इसे अपने सिस्टम पर स्थापित करने के लिए MongoDB वेबसाइट पर इंस्टॉलेशन निर्देशों का उपयोग कर सकते हैं।
कहां कमांड चलाना है?
मत भूलो, आपको mongoexport चलाने की आवश्यकता है आपके सिस्टम की कमांड लाइन (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो) से कमांड।