Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

moveCollection (comando de base de datos)

moveCollection

Nuevo en la versión 8.0.

Mover una única colección que no está en fragmentos a otra partición. Ejecute moveCollection con una instancia de mongos mientras usa la base de datos admin.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

No puedes usar moveCollection para colecciones de Queryable Encryption.

El comando tiene la siguiente sintaxis:

db.adminCommand(
{
moveCollection: "<database>.<collection>",
toShard: "<ID of the recipient shard>",
}
)

Nota

Utiliza el comando listShards para recuperar el ID de la partición de destino.

El comando toma los siguientes campos:

Campo
Tipo
Descripción

moveCollection

string

Base de datos y nombre de la colección a trasladar.

toShard

string

ID de la partición receptora.

  • moveCollection solo se puede ejecutar en clústeres segmentados.

  • moveCollection solo puede mover colecciones que no estén fragmentadas.

  • moveCollection solo puede mover una colección a la vez.

  • moveCollection tiene una duración mínima de 5 minutos.

  • Para mover una colección que tiene una restricción de unicidad, el nuevo índice debe cumplir con los requisitos del índice único para cualquier índice único existente.

  • Si la colección que se mueve utiliza Atlas Search, sus índices de búsqueda dejan de estar disponibles después de que moveCollection finalice. Debe reconstruir manualmente los índices de búsqueda.

  • Si la colección que está moviendo está archivada en Atlas Online Archives, los archivos de archivo en línea se marcan como Orphaned una vez que finaliza la operación de movimiento. Puede crear otro archivo en línea para la misma base de datos, colección y campos que el archivo huérfano, siempre que no exista otro archivo con esa misma combinación en Active estado.

  • No puedes realizar cambios de topología, como agregar o remover particiones o pasar de servidores de configuración integrados a dedicados, hasta que moveCollection este completado.

  • No puedes ejecutar las siguientes operaciones en la colección que se está moviendo mientras moveCollection esté en curso:

  • No puede ejecutar las siguientes operaciones en el clúster mientras moveCollection está en progreso:

  • Las creaciones de índices que ocurran mientras moveCollection esté en curso podrían fallar silenciosamente.

    • No crear índices mientras moveCollection esté en curso.

    • No llame a moveCollection si hay creaciones de índices en curso.

Antes de trasladar tu colección, asegúrate de cumplir los siguientes requisitos:

  • Su aplicación puede tolerar un período de dos segundos en el que la colección afectada bloquea los guardados. Durante el periodo en el que las écritas están bloqueadas, tu aplicación experimenta un aumento en la latencia.

  • Su base de datos cumple con estos requisitos de recursos:

    • Asegúrate de que la partición a la que mueves la colección tenga suficiente espacio de almacenamiento para la colección y sus índices. La partición de destino requiere al menos ( Collection storage size + Index Size ) * 2 bytes disponibles.

    • Asegúrate de que tu capacidad de E/S esté por debajo de 50%.

    • Asegúrate de que la carga de tu CPU esté por debajo del 80%.

Importante

Estos requisitos no son exigidos por la base de datos. Una falta de asignación de suficientes recursos puede provocar:

  • la base de datos se queda sin espacio y se apaga

  • rendimiento reducido

  • la operación tarda más de lo esperado

Si tu aplicación tiene periodos de menor tráfico, realiza esta operación en la colección durante ese tiempo si es posible.

Este ejemplo mueve una colección no particionada llamada inventory en la base de datos app a la partición shard02.

db.adminCommand(
{
moveCollection: "app.inventory",
toShard: "shard02"
}
)

Para obtener una lista de los ID de partición disponibles, ejecute sh.status(). Para más detalles, vea sh.status() Output.