कैसे आयात करें। Mongodb पर .bson फ़ाइल स्वरूप


162

मैंने mongodumpकमांड का उपयोग कर सर्वर पर डेटाबेस निर्यात किया है और .bsonफ़ाइल में डंप संग्रहीत किया गया है। मुझे mongorestoreआदेश का उपयोग करके अपने स्थानीय सर्वर में आयात करना होगा । हालाँकि यह काम नहीं कर रहा है। सही mongorestoreकमांड क्या है और अन्य क्या हैं tools to restore db?

जवाबों:


342

.Bson फ़ाइल आयात करना बहुत सरल है :

mongorestore -d db_name -c collection_name /path/file.bson

केवल एक ही संग्रह के लिए इंसेक्ट करें। यह प्रयास करें:

mongorestore --drop -d db_name -c collection_name /path/file.bson

द्वारा निर्यात किए गए पूर्ण फ़ोल्डर को पुनर्स्थापित करने के लिए mongodump:

mongorestore -d db_name /path/

4
mongoexportयदि आप केवल एकल संग्रह निर्यात कर रहे हैं, तो इसके माध्यम से निर्यात की गई बेन्स फ़ाइल के लिए भी उपयोगी है । mongoimportमुझे "अमान्य वर्ण" त्रुटियां दे रहा था। धन्यवाद!
डिविलेज़स करता है

4
SyntaxError: लापता; कथन से पहले @ (शेल): 1: 16
151291

3
हो सकता है कि आप जोड़ सकते हैं कि ये कमांड कमांड प्रॉम्प्ट से चलाए जाने हैं न कि मोंगो कंसोल से। इससे नए उपयोगकर्ताओं को मदद मिलेगी
ड्रीम्स

2
इस उत्तर को जोड़ना। उन लोगों के लिए जो दूर से एक फ़ाइल को पुनर्स्थापित करना चाहते हैं। Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
जेपीपर

1
धन्यवाद, यह मेरे पूर्ण फ़ोल्डर के लिए tar.gz से निकालने के बाद काम किया
देव यादव

63

mongorestoreउपकरण का उपयोग करने के लिए bson फ़ाइलों को आयात किया गया था जिसे डंप किया गया था mongodump

से डॉक्स :

mongorestore, mongodump से आउटपुट लेता है और इसे पुनर्स्थापित करता है।

उदाहरण:

# On the server run dump, it will create 2 files per collection
# in ./dump directory:
# ./dump/my-collection.bson
# ./dump/my-collection.metadata.json
mongodump -h 127.0.0.1 -d my-db -c my-collection

# Locally, copy this structure and run restore.
# All collections from ./dump directory are picked up.
scp user@server:~/dump/**/* ./
mongorestore -h 127.0.0.1 -d my-db

क्या मुझे dump/dbName/collectionName.bsonफ़ोल्डर संरचना रखने की आवश्यकता है ? मैंने उपयोग किया था mongodump, लेकिन अब मैं mongorestoreएक दूरस्थ लिनक्स बॉक्स पर इसका उपयोग करना चाहता हूं ।
केविन मेरेडिथ

@ केविन: मुझे यकीन नहीं है, ईमानदार होने के लिए, लेकिन मैं ऐसा मानूंगा। फ़ोल्डर संरचना के साथ फ़ाइलों को स्थानांतरित करने के लिए एक एफ़टीपी प्रोग्राम का उपयोग करें?
कैमरून

5
मैं सफलतापूर्वक एक "गैर डंप" फ़ोल्डर नाम का उपयोग करके एक मोंगो डीबी आयात करने में सक्षम था:mongorestore --collection people --db accounts myDump/accounts/people.bson
केविन मेरेडिथ

35
bsondump collection.bson > collection.json

और फिर

mongoimport -d <dbname> -c <collection> < collection.json

7
MongoDB के आयात-निर्यात प्रलेखन से चेतावनी पर ध्यान दें :mongoimport and mongoexport do not reliably preserve all rich BSON data types because JSON can only represent a subset of the types supported by BSON. As a result, data exported or imported with these tools may lose some measure of fidelity.
LucasB

हां। यह चीनी / जापानी पात्रों को गड़बड़ करता है।
user2619824

10

कमांड लाइन से निम्नलिखित को चलाएँ और आपको Mongo बिन निर्देशिका में होना चाहिए।

mongorestore -d db_name -c collection_name path/file.bson


9

आपको इस mongorestore कमांड को cmd के जरिए चलाना है न कि Mongo Shell पर ... नीचे दिए गए कमांड पर एक नजर डालिए ...

इस कमांड को cmd पर चलाएँ (Mongo शेल पर नहीं)

>path\to\mongorestore.exe -d dbname -c collection_name path\to\same\collection.bson

यहाँ मोंगोडब path\to\mongorestore.exeके mongorestore.exeअंदर बिन फ़ोल्डर का पथ है। dbname डेटाबेस का नाम है। collection_namecollection.bson का नाम है। path\to\same\collection.bsonउस संग्रह तक का मार्ग है।

अब मानगो शेल से आप यह सत्यापित कर सकते हैं कि डेटाबेस बनाया गया है या नहीं (यदि यह मौजूद नहीं है, तो उसी नाम के डेटाबेस को संग्रह के साथ बनाया जाएगा)।


4

सिर्फ संदर्भ के लिए अगर कोई अभी भी mongorestore के साथ संघर्ष कर रहा है।

आपको टर्मिनल / कमांड प्रॉम्प्ट में मोनोगोरस्टोर को चलाना है न कि मोंगो कंसोल में।

$ mongorestore -d db_name /path_to_mongo_dump/

अधिक जानकारी के लिए आप आधिकारिक दस्तावेज़ देख सकते हैं

https://docs.mongodb.com/manual/reference/program/mongorestore/


2

यदि आपकी पहुंच दूरस्थ रूप से है तो आप इसे कर सकते हैं

आगजनी के लिए:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people "/home/${USER}/people.bson"

.gz (gzip) प्रारूप में संपीड़ित बन्स के लिए:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people --gzip --dir "/home/${USER}/people.bson.gz"

1

mongorestore -d db_name / पथ /

सुनिश्चित करें कि आप इस क्वेरी को mongoDb के बिन फ़ोल्डर में चलाते हैं

C: \ Program Files \ MongoDB \ Server \ 4.2 \ bin -

इसके बाद इस कमांड को ऊपर चलाएं।


0

मैंने इसका उपयोग किया है:

mongorestore -d databasename -c file.bson fullpath/file.bson

1. गुणों से फ़ाइल पथ और फ़ाइल नाम को कॉपी करें (सभी फ़ोल्डर में अलग-अलग फ़ाइलों को रखने का प्रयास करें), 2. केवल फ़ाइल नाम बदलने के साथ इसे फिर से उपयोग करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.