Câu trả lời:
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/
Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
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
dump/dbName/collectionName.bson
cấ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 mongorestore
hộp Linux từ xa.
mongorestore --collection people --db accounts myDump/accounts/people.bson
bsondump collection.bson > collection.json
và sau đó
mongoimport -d <dbname> -c <collection> < collection.json
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.
Chạy đoạn mã sau từ dòng lệnh và bạn sẽ ở trong thư mục Mongo bin.
mongorestore -d db_name -c collection_name path/file.bson
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.exe
là đường dẫn của mongorestore.exe
thư mục bin bên trong mongodb. dbname là tên của cơ sở dữ liệu. collection_name
là tên của bộ sưu tập.bson. path\to\same\collection.bson
là đườ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).
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/
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"
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.
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.
mongoexport
nế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!