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

JSON फ़ाइल में MongoDB क्वेरी परिणाम कैसे निर्यात करें

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 चलाने की आवश्यकता है आपके सिस्टम की कमांड लाइन (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो) से कमांड।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ClusterControl सामुदायिक संस्करण के साथ मुक्त खुला स्रोत डेटाबेस परिनियोजन और निगरानी

  2. मोंगोडब में नेस्टेड सरणियों को अद्यतन करना

  3. मोंगोडीबी $माह

  4. MongoDB स्कीमा सत्यापन का अवलोकन

  5. जावा का उपयोग करते हुए MongoDB एकत्रीकरण