Cách nhập định dạng tệp .bson trên mongodb


162

Tôi đã xuất cơ sở dữ liệu trên máy chủ bằng mongodumplệnh và kết xuất được lưu trữ trong .bsontệp. Tôi cần phải nhập nó trong máy chủ cục bộ của tôi bằng cách sử dụng mongorestorelệnh. Tuy nhiên nó không hoạt động. mongorestoreLệnh chính xác là gì và khác là tools to restore dbgì?

Câu trả lời:


342

Rất đơn giản để nhập tệp .bson :

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

Chỉ dành cho một bộ sưu tập duy nhất. Hãy thử điều này:

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

Để khôi phục thư mục hoàn chỉnh được xuất bởi mongodump:

mongorestore -d db_name /path/

4
Cũng hữu ích cho tệp bson được xuất qua mongoexportnếu bạn chỉ xuất các bộ sưu tập duy nhất. mongoimportđã cho tôi lỗi "ký tự không hợp lệ". Cảm ơn!
divillysausages

4
Cú phápError: mất tích; trước câu lệnh @ (shell): 1: 16
151291

3
Có lẽ bạn có thể thêm rằng các lệnh này sẽ được chạy từ dấu nhắc lệnh chứ không phải từ bảng điều khiển mongo. Điều đó sẽ giúp người dùng mới
Giấc mơ

2
Thêm vào câu trả lời này. Đối với những người muốn khôi phục từ xa một tập tin bson. Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
Jpepper

1
Cảm ơn nó đã làm việc cho thư mục hoàn chỉnh của tôi sau khi nhập từ tar.gz
Braham Dev Yadav

63

mongorestore là công cụ được sử dụng để nhập các tệp bson bị đổ bởi mongodump .

Từ các tài liệu :

mongorestore lấy đầu ra từ mongodump và khôi phục nó.

Thí dụ:

# 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

Tôi có cần giữ dump/dbName/collectionName.bsoncấu trúc thư mục không? Tôi đã sử dụng mongodump, nhưng bây giờ tôi muốn nhập nó bằng cách sử dụng mongorestorehộp Linux từ xa.
Kevin Meredith

@ Kevin: Tôi không chắc chắn, thành thật mà nói, nhưng tôi sẽ cho là như vậy. Sử dụng chương trình FTP để chuyển các tập tin cùng với cấu trúc thư mục?
Cameron

5
Tôi đã có thể nhập thành công db mongo bằng tên thư mục không "kết xuất":mongorestore --collection people --db accounts myDump/accounts/people.bson
Kevin Meredith

35
bsondump collection.bson > collection.json

và sau đó

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

7
Lưu ý cảnh báo từ tài liệu xuất nhập khẩu của 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

Vâng. Điều này làm rối tung các ký tự Trung Quốc / Nhật Bản.
dùng2619824


9

Bạn phải chạy lệnh mongorestore này qua cmd chứ không phải trên Mongo Shell ... Hãy xem lệnh dưới đây trên ...

Chạy lệnh này trên cmd (không phải trên vỏ Mongo)

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

Đây path\to\mongorestore.exelà đường dẫn của mongorestore.exethư mục bin bên trong mongodb. dbname là tên của cơ sở dữ liệu. collection_namelà tên của bộ sưu tập.bson. path\to\same\collection.bsonlà đường dẫn đến bộ sưu tập đó.

Bây giờ từ shell mongo, bạn có thể xác minh rằng cơ sở dữ liệu có được tạo hay không (Nếu nó không tồn tại, cơ sở dữ liệu có cùng tên sẽ được tạo bằng bộ sưu tập).


4

Chỉ để tham khảo nếu bất cứ ai vẫn đang vật lộn với mongorestore.

Bạn phải chạy monogorestore trong terminal / Command prompt chứ không phải trong bảng điều khiển mongo.

$ mongorestore -d db_name /path_to_mongo_dump/

để biết thêm chi tiết bạn có thể truy cập tài liệu chính thức

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


2

Nếu bạn truy cập từ xa, bạn có thể làm điều đó

cho bson:

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

cho bson được nén ở định dạng .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 /

đảm bảo bạn chạy truy vấn này trong thư mục bin của mongoDb

C: \ Tệp chương trình \ MongoDB \ Server \ 4.2 \ bin -

sau đó chạy lệnh trên.


0

Tôi đã sử dụng điều này:

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

1. sao chép đường dẫn tệp và tên tệp từ các thuộc tính (cố gắng đặt tất cả các tệp bson vào thư mục khác nhau), 2. sử dụng lại nhiều lần với chỉ thay đổi tên tệp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.