JSON प्रारूप में डंप मैंगो संग्रह


119

क्या जोंस प्रारूप में मोंगो संग्रह को डंप करने का कोई तरीका है? या तो शेल पर या जावा चालक का उपयोग कर। मैं सबसे अच्छे प्रदर्शन के साथ देख रहा हूँ।


mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase adminआप निर्दिष्ट कर सकते host, port, username, passwordइस और डिफ़ॉल्ट प्रमाणीकरण डेटाबेस है की तरह admin
मैक्स पेंग

जवाबों:


177

मोंगो में एक मोंगोएक्सपोर्ट उपयोगिता (डॉक्स देखें) शामिल है जो एक संग्रह को डंप कर सकती है। यह उपयोगिता मूल निवासी libmongoclient का उपयोग करती है और संभवतः सबसे तेज़ विधि है।

mongoexport -d <database> -c <collection_name>

इसके अलावा मददगार:

-o: आउटपुट को फ़ाइल में लिखें, अन्यथा मानक आउटपुट का उपयोग किया जाता है ( डॉक्स )

--jsonArray: प्रति पंक्ति एक डॉसन ऑब्जेक्ट ( डॉक्स ) के बजाय एक वैध जसन दस्तावेज बनाता है

--pretty: आउटपुट स्वरूपित json ( डॉक्स )


8
डेटाबेस का उपयोग करने के लिए निर्दिष्ट करने के लिए -d ध्वज का उपयोग करें।
रीमुंड

8
यदि आप बहुत मुद्रित JSON चाहते हैं (जैसे विकास के दौरान एक संग्रह का निरीक्षण करने के लिए) --prettyझंडे का उपयोग करें :mongoexport -d mydatabase -c mycollection --pretty
मैक्स ट्रक्सा

6
यदि मानगो एक अलग मेज़बान पर स्थित है, तो मोंगो डॉक्टर से एक उदाहरण दिया गया है mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
क्या होगा शांत

ऐसा लगता है कि --prettyसंस्करण 2.6.10 के रूप में चला गया है।
आइकेडवाटर

115

किसी संग्रह को डंप / पुनर्स्थापित करने के लिए मोंगोएक्सपोर्ट / मोंगोइमपोर्ट का उपयोग करें:

निर्यात JSON फ़ाइल :

mongoexport --db <database-name> --collection <collection-name> --out output.json

JSON फ़ाइल आयात करें :

mongoimport --db <database-name> --collection <collection-name> --file input.json

चेतावनी mongoimportऔर mongoexportसभी समृद्ध BSON डेटा प्रकारों को सुरक्षित रूप से संरक्षित न करें क्योंकि JSON केवल BSON द्वारा समर्थित प्रकारों के सबसेट का प्रतिनिधित्व कर सकता है। परिणामस्वरूप, इन उपकरणों के साथ निर्यात या आयात किया गया डेटा निष्ठा के कुछ उपाय खो सकता है।

इसके अलावा, http://bsonspec.org/

BSON को सांकेतिक शब्दों में बदलना और डिकोड करने के लिए तेज़ बनाया गया है। उदाहरण के लिए, पूर्णांक 32 (या 64) बिट पूर्णांक के रूप में संग्रहीत किए जाते हैं, इसलिए उन्हें पाठ से पार्स करने की आवश्यकता नहीं है। यह छोटे पूर्णांकों के लिए JSON से अधिक स्थान का उपयोग करता है, लेकिन पार्स करने के लिए बहुत तेज़ है।

कॉम्पैक्टनेस के अलावा, BSON, JSON में विशेष रूप से उपलब्ध अतिरिक्त डेटा प्रकारों को जोड़ता है, विशेष रूप से BinData और Date डेटा प्रकारों को।


1
क्या एक उदाहरण है कि "समृद्ध बीएसएनओ डेटा" एक mongoexport/ mongoimportदौर यात्रा से बच नहीं पाएगा ?
andrewdotn

1
यह डेट्स और बाइनरी जैसे डेटा प्रकारों के लिए समर्थन जोड़ता है जो JSON में समर्थित नहीं हैं। इसके अलावा, तेजी से एन्कोडिंग और डिकोडिंग के लिए bsonspec.org
प्रियांशु चौहान

5

यहाँ संदर्भ के लिए मेरा आदेश है:

mongoexport --db AppDB --collection files --pretty --out output.json

विंडोज 7 (MongoDB 3.4) पर, एक जगह है जहाँ के लिए cmd जाना होता है mongod.exeऔर mongo.exeफ़ाइल बसता था => C:\MongoDB\Server\3.4\binवरना यह कह रही है काम नहीं करेगा यदि ऐसा नहीं होता recongnize mongoexportआदेश।


क्या किसी को ऐसे फॉर्मेटर के बारे में पता है जो नॉर्मल जोंस को मूर्खतापूर्ण "सिंगल लाइन नो कॉमा" फॉर्मेट का प्रारूप देगा, जिसे MongoDB आयात करने की उम्मीद करता है?
conor909

3

मानगो दस्तावेज से:

Mongoexport यूटिलिटी एक संग्रह लेता है और JSON या CSV को निर्यात करता है। आप क्वेरी, या आउटपुट के लिए फ़ील्ड की सूची के लिए एक फ़िल्टर निर्दिष्ट कर सकते हैं

यहां पढ़ें: http://www.mongodb.org/display/DOCS/mongoexport


-2

यदि आप सभी संग्रह डंप करना चाहते हैं, तो इस कमांड को चलाएं:

mongodump -d {DB_NAME}   -o /tmp 

यह निर्देशिका में सभी संग्रह डेटा jsonऔर bsonएक्सटेंशन उत्पन्न करेगा/tmp/{DB_NAME}


तथ्य की बात के रूप में यह अभी भी bson और metadata.bson डंपिंग है :-(
प्रसाद

9
यह उत्तर गलत है। प्रारूप mongodumpमें डेटा आउटपुट BSON। अन्य उत्तर सही mongoexportउपकरण के रूप में संदर्भित हैं ।
क्रिश्चियन डचेरी

यह मेरे लिए काम कर रहा है, इसके सभी संग्रह को tmp फ़ोल्डर में bson और json फ़ाइलों के साथ आउटपुट किया गया है। मैंने मोंगोडम्प -d {dbname} -o tmp
shyamzzp
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.