Pár věcí :
- Obecně cloneCollection se používá pro různé mongo instance, ale ne ke kopírování na stejné instance.
- Také pokud používáte
v4.2
měli byste přestat používatcopyDB
&cloneCollection
protože jsou zastaralé kompatibilita-s-v4.2 a začněte používat mongodump a mongorestore nebo mongoexport &mongoimport . -
Navrhoval bych použít mongodump a mongorestore :
- Příčina mongodump by zachovalo datové typy MongoDB, tj.;
bson
typy. - mongodump vytvoří binární soubor, kde jako mongoexport převede
bson
dojson
a znovu mongoimport převedejson
nabson
při psaní, proto jsou pomalé. Můžete použít mongoexport a mongoimport, když chcete data sbírek analyzovat vizuálně, nebo použítjson
údaje pro jakýkoli jiný účel.
- Příčina mongodump by zachovalo datové typy MongoDB, tj.;
-
Níže uvedený skript můžete spustit v shellu
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
Chcete-li použít mongodump , musíte spustit mongodump proti běžící instanci mongoda nebo mongos. Takže tyto příkazy se spouštějí s očekáváním, že mongo je správně nainstalováno a nastavení cesty je dobré, pokud ne, můžete přejít do složky mongo a spustit jako ./mongodump
&./mongorestore
. Výše uvedený skript bude užitečný, pokud chcete zálohovat více kolekcí. Ve skriptu musíte zadat několik věcí, například:
-
mongodump--host "All-shards"
-> Zde musíte zadat všechny fragmenty, pokud je vaše MongoDB sada replik, pokud ne, můžete zadatlocalhost:27017
. -
mongorestore --host=host-shard-name
-> Musíte zadat jeden fragment sady replik, jinak vášlocalhost
, Několik věcí zde může být volitelných--ssl
,--username
,--password
. - Takže mongodump vytvoří složku s názvem dump poprvé, která bude mít podsložky s dbNames a každá podsložka bude mít
bson
soubory odpovídající jejich názvům kolekcí, takže musíte odkazovat nadbName
v příkazu obnovení a název kolekce bude převzat z proměnnéi
->./dump/dbName/"$i".bson
Poznámka: MongoDB v3.2
je tak stará a cloudová služba MongoDB Mongo-atlas
již dosáhl konce svého životního cyklu, takže jej prosím upgradujte co nejdříve. Pokud hledáte bezplatnou mongo instanci nebo začínáte s MongoDB – můžete zkusit atlas.