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?

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/

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

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

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


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).



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"

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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.