Vài điều:
- Nói chung cloneCollection được sử dụng cho các phiên bản mongo khác nhau nhưng không được sao chép trên các phiên bản giống nhau.
- Ngoài ra nếu bạn đang sử dụng
v4.2
bạn nên ngừng sử dụngcopyDB
&cloneCollection
vì chúng không được dùng nữa tương thích với-v4.2 &bắt đầu sử dụng mongodump và mongorestore hoặc mongoexport & mongoimport . -
Tôi khuyên bạn nên sử dụng mongodump & mongorestore :
- Nguyên nhân mongodump sẽ bảo toàn các kiểu dữ liệu của MongoDB, tức là;
bson
các loại. - mongodump tạo một tệp nhị phân trong đó là mongoexport sẽ chuyển đổi
bson
tớijson
&một lần nữa mongoimport sẽ chuyển đổijson
thànhbson
trong khi viết, đó là lý do tại sao chúng chậm. Bạn có thể sử dụng mongoexport &mongoimport khi muốn phân tích dữ liệu bộ sưu tập của mình một cách trực quan hoặc sử dụngjson
dữ liệu cho bất kỳ mục đích nào khác.
- Nguyên nhân mongodump sẽ bảo toàn các kiểu dữ liệu của MongoDB, tức là;
-
Bạn có thể chạy tập lệnh bên dưới trong shell
declare - a collections = ("collectionName1" "collectionName2") for i in "${collections[@]}" do echo "$i" mongodump --host "All-shards" --username=uname --password password --ssl --authenticationDatabase admin --db dbname --collection "$i" mongorestore --host=host-shard-name --port=27017 --username=uname --password=psswrd --ssl --authenticationDatabase=admin --db=dbname --collection= "$i" ./dump/dbName/"$i".bson; done
Để sử dụng mongodump , bạn phải chạy mongodump đối với một phiên bản mongod hoặc mongos đang chạy. Vì vậy, các lệnh này đang được chạy với hy vọng mongo được cài đặt đúng cách và thiết lập đường dẫn tốt, nếu không, bạn có thể điều hướng đến thư mục mongo và chạy như ./mongodump
&./mongorestore
. Tập lệnh trên sẽ hữu ích nếu bạn muốn sao lưu nhiều bộ sưu tập, Bạn cần chỉ định một số điều trong tập lệnh như:
-
mongodump--host "All-shards"
-> Ở đây bạn cần chỉ định tất cả các phân đoạn nếu MongoDB của bạn là một tập hợp bản sao, nếu không, bạn có thể chỉ địnhlocalhost:27017
. -
mongorestore --host=host-shard-name
-> Bạn phải chỉ định một phân đoạn của tập hợp bản sao, còn lạilocalhost
của bạn , Một số thứ ở đây có thể là tùy chọn--ssl
,--username
,--password
. - Vì vậy, mongodump sẽ tạo một thư mục có tên dump lần đầu tiên sẽ có các thư mục con với dbNames &mỗi thư mục con sẽ có
bson
các tệp tương ứng với tên bộ sưu tập của chúng đã được kết xuất, Vì vậy, bạn cần tham khảodbName
trong lệnh khôi phục &tên bộ sưu tập sẽ được lấy từ biếni
->./dump/dbName/"$i".bson
Lưu ý: MongoDB v3.2
đã quá cũ và trong dịch vụ MongoDB dựa trên đám mây Mongo-atlas
nó đã đạt đến cuối vòng đời, Vì vậy, vui lòng nâng cấp càng sớm càng tốt. Nếu bạn đang tìm kiếm một phiên bản mongo miễn phí hoặc bắt đầu với MongoDB - bạn có thể thử atlas.