Малко неща :
- По принцип cloneCollection се използва за различни екземпляри на mongo, но не и за копиране в същите екземпляри.
- Също така, ако използвате
v4.2
трябва да спрете да използватеcopyDB
&cloneCollection
защото са отхвърлени съвместимост-с-v4.2 &започнете да използвате mongodump и mongorestore или mongoexport &mongoimport . -
Предлагам да използвате mongodump &mongorestore :
- Причина mongodump ще запази типовете данни на MongoDB, т.е.;
bson
видове. - mongodump създава двоичен файл където като mongoexport ще конвертира
bson
къмjson
&отново mongoimport ще конвертираjson
къмbson
докато пишат, поради което са бавни. Можете да използвате mongoexport &mongoimport, когато искате да анализирате визуално данните на вашите колекции или да използватеjson
данни за всякакви други цели.
- Причина mongodump ще запази типовете данни на MongoDB, т.е.;
-
Можете да изпълните скрипта по-долу в 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
За да използвате mongodump , трябва да стартирате mongodump срещу работещ екземпляр на mongod или mongos. Така че тези команди се изпълняват, като се очаква mongo да е правилно инсталиран и настройката на пътя е добра, ако не, можете да отидете до папката mongo и да стартирате като ./mongodump
&./mongorestore
. Горният скрипт ще бъде полезен, ако искате да архивирате множество колекции, трябва да посочите няколко неща в скрипта като:
-
mongodump--хост "Всички фрагменти"
-> Тук трябва да посочите всички фрагменти, ако вашият MongoDB е набор от реплики, ако не, можете да посочитеlocalhost:27017
. -
mongorestore --host=host-shard-name
-> Трябва да посочите един шард от набор от реплики, в противен случай вашиятlocalhost
, Малко неща тук могат да бъдат незадължителни--ssl
,--потребителско имекод> ,
--паролакод> .
- И така mongodump ще създаде папка с име dump за първи път, който ще има подпапки с dbNames и всяка подпапка ще има
bson
файлове, съответстващи на техните имена на колекции, изхвърлени, така че трябва да се обърнете къмdbName
в командата за възстановяване и името на колекцията ще бъде взето от променливаi
->./dump/dbName/"$i".bson
Забележка: MongoDB v3.2
е толкова стар и в базирана на облак услуга MongoDB Mongo-atlas
вече е достигнал края на жизнения си цикъл, така че, моля, надстройте възможно най-скоро. Ако търсите безплатен екземпляр на mongo или започнете с MongoDB – можете да опитате atlas.