Pocas cosas :
- En general, cloneCollection se usa para diferentes instancias de mongo pero no para copiar en las mismas instancias.
- También si estás usando
v4.2
deberías dejar de usarcopyDB
&cloneCollection
porque están en desuso mo">compatibilidad-con-v4.2 &comience a usar mongodump y mongorestore o mongoexport &mongoimport . -
Sugeriría usar mongodump &mongorestore :
- Porque mongodump preservaría los tipos de datos de MongoDB, es decir;
bson
tipos. - mongodump crea un binario donde como mongoexport convertiría
bson
ajson
y otra vez mongoimport convertirájson
abson
mientras escriben, por eso son lentos. Puede usar mongoexport y mongoimport cuando quiera analizar visualmente los datos de sus colecciones o usarjson
datos para cualquier otro propósito.
- Porque mongodump preservaría los tipos de datos de MongoDB, es decir;
-
Puede ejecutar el siguiente script en 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 mongodump , debe ejecutar mongodump en una instancia de mongod o mongos en ejecución. Por lo tanto, estos comandos se ejecutan esperando que mongo esté correctamente instalado y la configuración de la ruta sea buena, si no, puede navegar a la carpeta mongo y ejecutar como ./mongodump
&./mongorestore
. La secuencia de comandos anterior será útil si desea hacer una copia de seguridad de varias colecciones. Debe especificar algunas cosas en la secuencia de comandos como:
-
mongodump--host "All-shards"
-> Aquí debe especificar todos los fragmentos si su MongoDB es un conjunto de réplicas; si no, puede especificarlocalhost:27017
. -
mongorestore --host=host-shard-name
-> Debe especificar un fragmento del conjunto de réplicas, de lo contrario, sulocalhost
, Pocas cosas aquí pueden ser opcionales--ssl
,--username
,--password
. - Así que mongodump creará una carpeta llamada dump por primera vez, que tendrá las subcarpetas con dbNames y cada subcarpeta tendrá
bson
archivos respectivos a sus nombres de colección volcados, por lo que debe consultardbName
en el comando de restauración y el nombre de la colección se tomará de la variablei
->./dump/dbName/"$i".bson
Nota: MongoDB v3.2
es tan antiguo y está en el servicio MongoDB basado en la nube Mongo-atlas
ya ha llegado al final de su ciclo de vida, así que actualice lo antes posible. Si está buscando una instancia de mongo gratuita o está comenzando con MongoDB, puede probar atlas.