Cara Mengimpor format file .bson di mongodb

162

Saya sudah mengekspor database di server menggunakan mongodumpperintah dan dump disimpan dalam .bsonfile. Saya perlu mengimpor itu di server lokal saya menggunakan mongorestoreperintah. Namun itu tidak berhasil. Apa mongorestoreperintah yang benar dan apa yang lainnya tools to restore db?

binalay
sumber

Jawaban:

342

Sangat mudah untuk mengimpor file .bson :

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

Hanya memetikan untuk satu koleksi. Coba ini:

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

Untuk memulihkan folder lengkap yang diekspor oleh mongodump:

mongorestore -d db_name /path/
JERRY
sumber
4
Juga bermanfaat untuk file bson yang diekspor melalui mongoexportjika Anda hanya mengekspor satu koleksi. mongoimportmemberi saya kesalahan "karakter tidak valid". Terima kasih!
divillysausages
4
SyntaxError: hilang; before statement @ (shell): 1: 16
151291
3
Mungkin Anda dapat menambahkan bahwa perintah ini dijalankan dari command prompt dan bukan dari konsol mongo. Itu akan membantu pengguna baru
Mimpi
2
Menambah jawaban ini. Bagi mereka yang ingin mengembalikan file bson dari jarak jauh. Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
Jpepper
1
Terima kasih ini berfungsi untuk folder lengkap saya setelah mengekstraksi dari tar.gz
Braham Dev Yadav
63

mongorestore adalah alat yang digunakan untuk mengimpor file bson yang dibuang oleh mongodump .

Dari dokumen :

mongorestore mengambil output dari mongodump dan mengembalikannya.

Contoh:

# 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
Cameron
sumber
Apakah saya perlu menjaga dump/dbName/collectionName.bsonstruktur folder? Saya dulu mongodump, tetapi sekarang saya ingin mengimpornya menggunakan mongorestorepada kotak Linux remote.
Kevin Meredith
@ Kevin: Saya tidak yakin, jujur, tapi saya akan menganggapnya demikian. Gunakan program FTP untuk mentransfer file bersama dengan struktur folder?
Cameron
5
Saya berhasil mengimpor mongo db menggunakan nama folder non-"dump":mongorestore --collection people --db accounts myDump/accounts/people.bson
Kevin Meredith
35
bsondump collection.bson > collection.json

lalu

mongoimport -d <dbname> -c <collection> < collection.json
Anton Shutik
sumber
7
Perhatikan peringatan dari dokumentasi ekspor-impor 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
Ya. Ini mengacaukan karakter Cina / Jepang.
user2619824
10

Jalankan berikut ini dari baris perintah dan Anda harus berada di direktori Mongo bin.

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

puneet goyal
sumber
9

Anda harus menjalankan perintah mongorestore ini melalui cmd dan bukan pada Mongo Shell ... Lihat di bawah ini perintah pada ...

Jalankan perintah ini pada cmd (bukan pada shell Mongo)

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

Inilah path\to\mongorestore.exepath mongorestore.exefolder di dalam folder mongodb. dbname adalah nama databse. collection_nameadalah nama collection.bson. path\to\same\collection.bsonadalah jalan menuju koleksi itu.

Sekarang dari mongo shell Anda dapat memverifikasi bahwa database dibuat atau tidak (Jika tidak ada, database dengan nama yang sama akan dibuat dengan koleksi).

Sedang mencari
sumber
4

Hanya untuk referensi jika ada yang masih berjuang dengan mongorestore.

Anda harus menjalankan monogorestore di terminal / command prompt dan bukan di mongo console.

$ mongorestore -d db_name /path_to_mongo_dump/

untuk lebih jelasnya Anda dapat mengunjungi dokumentasi resmi

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

Lalit Sharma
sumber
2

Jika akses Anda dari jarak jauh Anda dapat melakukannya

untuk bson:

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

untuk bson yang dikompres dalam format .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"
Dalam hukum
sumber
1

mongorestore -d db_name / path /

pastikan Anda menjalankan kueri ini di folder bin mongoDb

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

kemudian jalankan perintah di atas ini.

Jitendra Chandwani
sumber
0

Saya telah menggunakan ini:

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

1. menyalin jalur file dan nama file dari properti (mencoba untuk meletakkan semua file bson di folder yang berbeda), 2. gunakan ini lagi dan lagi dengan mengubah nama file saja.

Rochan
sumber