MongoDB डेटाबेस टूल्स में mongoexport
. नामक एक उपयोगिता शामिल है जो आपको MongoDB डेटा को CSV या JSON फ़ाइल में निर्यात करने में सक्षम बनाता है।
इस उपयोगिता के साथ आप जो चीजें कर सकते हैं उनमें से एक निर्यात क्वेरी परिणाम है। यह लेख आपको mongoexport
. का उपयोग करने का तरीका दिखाता है MongoDB क्वेरी परिणामों को JSON फ़ाइल में निर्यात करने के लिए।
सिंटैक्स
mongoexport
. के लिए सिंटैक्स इस तरह जाता है:
mongoexport --collection=<coll> <options> <connection-string>
आपको mongoexport
चलाने की जरूरत है आपके सिस्टम की कमांड लाइन (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो) से कमांड।
mongoexport
न चलाएं mongo
. से आदेश सीप।
उदाहरण
निम्न उदाहरण कोड किसी क्वेरी के परिणामों को JSON फ़ाइल में निर्यात करता है:
mongoexport --db=PetHotel --collection=pets --query='{ "type": "Dog" }' --out=data/dogs.json
यह एक क्वेरी निर्यात करता है जो pets
. नामक संग्रह को क्वेरी करता है PetHotel
. में डेटाबेस। क्वेरी dogs.json
. नामक फ़ाइल में निर्यात की जाती है data/
में फ़ोल्डर।
यदि फ़ोल्डर मौजूद नहीं है, तो इसे बनाया गया है। फ़ाइल के साथ ही। वैसे, यह मानता है कि निर्दिष्ट स्थान पर फ़ाइल लिखने में कोई अनुमति समस्या नहीं है।
इस उदाहरण में मैंने कोई होस्ट, पोर्ट, प्रमाणीकरण आदि निर्दिष्ट नहीं किया है, इसलिए यह डिफ़ॉल्ट लोकलहोस्ट पोर्ट नंबर 27017
पर चल रहे MongoDB इंस्टेंस से संग्रह को निर्यात करता है। ।
आप --type
का भी उपयोग कर सकते हैं JSON को स्पष्ट रूप से निर्दिष्ट करने के लिए पैरामीटर। डिफ़ॉल्ट JSON है, इसलिए JSON को निर्यात करते समय यह वैकल्पिक है।
आप एक --fields
. भी शामिल कर सकते हैं निर्यात करने के लिए कौन से फ़ील्ड निर्दिष्ट करने के लिए पैरामीटर। डिफ़ॉल्ट रूप से, यह JSON का उपयोग करते समय सभी फ़ील्ड निर्यात करता है। हालांकि, सीएसवी को निर्यात करते समय, आपको यह निर्दिष्ट करना होगा कि किन क्षेत्रों को निर्यात करना है।
इन दो पैरामीटरों के साथ उपरोक्त उदाहरण का एक उदाहरण यहां दिया गया है:
mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.json
नीचे हमारे द्वारा प्रदान किए गए मापदंडों की व्याख्या है।
पैरामीटर | <थ>विवरण|
---|---|
--db या -d | उस डेटाबेस को निर्दिष्ट करता है जिस पर mongoexport चलाना है . इस मामले में, डेटाबेस को PetHotel . कहा जाता है . यह पैरामीटर वैकल्पिक रूप से -d . का उपयोग करके पारित किया जा सकता है (--db . के बजाय )। |
--collection या -c | उस संग्रह को निर्दिष्ट करता है जिसे हम निर्यात करना चाहते हैं (या उसके विरुद्ध क्वेरी चलाएँ)। इस मामले में, संग्रह को pets . कहा जाता है . यह पैरामीटर वैकल्पिक रूप से -c . के रूप में पारित किया जा सकता है (--collection . के बजाय )। |
--type | निर्यात की गई फ़ाइल प्रकार निर्दिष्ट करता है। इस मामले में हम json . निर्दिष्ट करते हैं इसे JSON फ़ाइल में निर्यात करने के लिए। यह देखते हुए कि JSON डिफ़ॉल्ट मान है, JSON को निर्यात करते समय यह पैरामीटर वैकल्पिक है। |
--fields | उन फ़ील्ड को निर्दिष्ट करता है जिन्हें हम निर्यात करना चाहते हैं। हमारे पास सभी क्षेत्रों या कुछ को निर्यात करने का विकल्प है। JSON को निर्यात करते समय, फ़ील्ड नाम निर्दिष्ट करना वैकल्पिक है (CSV को निर्यात करते समय यह एक आवश्यकता है)। |
--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.json
अंदर क्या है देखने के लिए:
{"_id":1.0,"name":"Wag","type":"Dog","weight":20.0} {"_id":2.0,"name":"Bark","type":"Dog","weight":10.0} {"_id":6.0,"name":"Fetch","type":"Dog","weight":17.0} {"_id":7.0,"name":"Jake","type":"Dog","weight":30.0}
सभी डेटा निर्यातित फ़ाइल में अपेक्षित के रूप में है।
कम फ़ील्ड निर्यात करें
आप --fields
. के साथ कम फ़ील्ड निर्दिष्ट कर सकते हैं यदि आप चाहें तो पैरामीटर।
उदाहरण:
mongoexport --db=PetHotel --collection=pets --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.json
परिणामी फ़ाइल:
{"_id":1.0,"name":"Wag","weight":20.0} {"_id":2.0,"name":"Bark","weight":10.0} {"_id":6.0,"name":"Fetch","weight":17.0} {"_id":7.0,"name":"Jake","weight":30.0}
आप देखेंगे कि _id
फ़ील्ड को निर्यात की गई फ़ाइल में शामिल किया गया था, भले ही मैंने इसे स्पष्ट रूप से --fields
में शामिल नहीं किया था बहस। ऐसा इसलिए है क्योंकि _id
JSON को निर्यात करते समय फ़ील्ड को हमेशा शामिल किया जाता है - तब भी जब आप इसे स्पष्ट रूप से शामिल नहीं करते हैं। CSV को निर्यात करते समय ऐसा नहीं होता है।
पहुंच नियंत्रण/प्रमाणीकरण
यदि आप लोकलहोस्ट का उपयोग नहीं कर रहे हैं, तो आप --host
. का उपयोग कर सकते हैं होस्ट निर्दिष्ट करने के लिए पैरामीटर, और --port
पोर्ट निर्दिष्ट करने के लिए। आप --username
. का भी उपयोग कर सकते हैं उपयोगकर्ता नाम निर्दिष्ट करने के लिए पैरामीटर और --password
पासवर्ड के लिए। यदि आप पासवर्ड पैरामीटर को छोड़ देते हैं, तो आपको इसके लिए संकेत दिया जाएगा। एक --authenticationDatabase
भी है प्रमाणीकरण डेटाबेस निर्दिष्ट करने के लिए पैरामीटर जहां उपयोगकर्ता बनाया गया है।
उदाहरण:
mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --query='{ "type": "Dog" }' --out=data/dogs.json
mongoexport
की जांच करें
mongoexport
MongoDB डेटाबेस टूल्स पैकेज का हिस्सा है। MongoDB डेटाबेस टूल्स MongoDB के साथ काम करने के लिए कमांड-लाइन उपयोगिताओं का एक सूट है।
यदि आप सुनिश्चित नहीं हैं कि आपके पास MongoDB डेटाबेस टूल्स/mongoexport
है या नहीं स्थापित है, जाँच करने के लिए अपने टर्मिनल या कमांड प्रॉम्प्ट में निम्न कमांड चलाने का प्रयास करें:
mongoexport --version
यदि आपके पास है, तो आपको संस्करण की जानकारी आदि देखनी चाहिए। यदि आपके पास यह नहीं है, तो आप इसे अपने सिस्टम पर स्थापित करने के लिए MongoDB वेबसाइट पर इंस्टॉलेशन निर्देशों का उपयोग कर सकते हैं।
कहां कमांड चलाना है?
मत भूलो, आपको mongoexport
चलाने की आवश्यकता है आपके सिस्टम की कमांड लाइन (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो) से कमांड।