Tengo muchas colecciones en la base de datos A. Quiero copiar algunas de ellas en la base de datos B en el mismo MongoDB .
Traté de copiar toda la base de datos usando db.copyDatabase('A', 'B') , pero tiene más de 300 GB de datos. La copia tardará años y solo quiero copiar algunas colecciones de la base de datos A a la base de datos B.
¿Alguien sabe cómo puedo hacerlo?
Puedes probarlo usando mongo shell. puede copiar la colección de una base de datos a otra utilizando renameCollection . renameCollection puede ejecutarse desde la base de datos de administración , por lo que primero debe cambiar a la base de datos de administración .
entonces puede seguir los pasos a continuación en mongo Shell:
paso 1: ejecute este comentario use admin
paso 2: ejecuta el comentario a continuación
db.runCommand({renameCollection:"sourcedb.sourceCollection",to:"targetdb.tragetCollection"})por ejemplo:
use admin db.runCommand({renameCollection:"funnel.countries",to:"test.countries"}) colección de countries copiados de funnel db a test db.
En segundo plano, MongoDB creará un volcado para la colección de origen y restaurará el volcado automáticamente a la colección de db de destino
Use mongodump para volcar las colecciones:
mongodump --db A --collection coll --out yourbackupdir y luego importe las colecciones usandomongorestore :
mongorestore --db B --collection coll yourbackupdir/