Poucas coisas :
- Em geral, cloneCollection é usado para diferentes instâncias do mongo, mas não para copiar nas mesmas instâncias.
- Também se você estiver usando a
v4.2você deve parar de usarcopyDB&cloneCollectionporque eles estão obsoletos compatibilidade-com-v4.2 e comece a usar mongodump e mongorestore ou mongoexport &mongoimport . -
Sugiro usar mongodump &mongorestore :
- Causa mongodump preservaria os tipos de dados do MongoDB, ou seja;
bsontipos. - mongodump cria um binário onde como mongoexport converteria
bsonparajsone novamente mongoimport converterájsonparabsonenquanto escreve, e é por isso que eles são lentos. Você pode usar mongoexport &mongoimport quando quiser analisar visualmente seus dados de coleções ou usarjsondados para qualquer outra finalidade.
- Causa mongodump preservaria os tipos de dados do MongoDB, ou seja;
-
Você pode executar o script abaixo no 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
Para usar o mongodump , você deve executar o mongodump em uma instância mongod ou mongos em execução. Portanto, esses comandos estão sendo executados esperando que o mongo esteja instalado corretamente e a configuração do caminho seja boa, caso contrário, você pode navegar para a pasta mongo e executar como
./mongodump &./mongorestore . O script acima será útil se você quiser fazer backup de várias coleções, você precisa especificar algumas coisas no script, como:-
mongodump--host "All-shards"-> Aqui você precisa especificar todos os shards se o seu MongoDB for um conjunto de réplicas, caso contrário, você pode especificarlocalhost:27017.
-
mongorestore --host=host-shard-name-> Você deve especificar um fragmento de conjunto de réplicas, senão seulocalhost, Poucas coisas aqui podem ser opcionais--ssl,--username,--password.
- Então mongodump irá criar uma pasta chamada dump pela primeira vez que terá as subpastas com dbNames e cada subpasta terá
bsonarquivos respectivos aos seus nomes de coleção despejados, então você precisa consultardbNameno comando de restauração e o nome da coleção será obtido da variáveli->./dump/dbName/"$i".bson
Observação: MongoDB
v3.2 é tão antigo e no serviço MongoDB baseado em nuvem Mongo-atlas
ele já atingiu o fim do ciclo de vida, portanto, atualize o mais rápido possível. Se você está procurando uma instância mongo gratuita ou começando com o MongoDB - você pode tentar o atlas.