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.2bạn nên ngừng sử dụngcopyDB&cloneCollectionvì 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à;
bsoncác loại. - mongodump tạo một tệp nhị phân trong đó là mongoexport sẽ chuyển đổi
bsontớijson&một lần nữa mongoimport sẽ chuyển đổijsonthànhbsontrong 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ụngjsondữ 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ạilocalhostcủ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ó
bsoncá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ảodbNametrong 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.