Docs Menu
Docs Home
/ /

moveCollection (comando de base de datos)

moveCollection

Nuevo en la versión 8.0.

Moves a single unsharded collection to a different shard. Run moveCollection with a mongos instance while using the admin database.

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 se puede utilizar moveCollection para colecciones de cifrado consultable.

El comando tiene la siguiente sintaxis:

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

Nota

Utilice el comando para recuperar el ID del fragmento del listShards destinatario.

El comando toma los siguientes campos:

Campo
Tipo
Descripción

moveCollection

string

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

toShard

string

ID del fragmento destinatario.

Antes de trasladar su colección, asegúrese de cumplir los siguientes requisitos:

  • Su aplicación puede tolerar un periodo de dos segundos en el que la colección afectada bloquea las escrituras. Durante este periodo, la aplicación experimenta un aumento de latencia.

  • Su base de datos cumple estos requisitos de recursos:

    • Asegúrese de que el fragmento al que va a mover la colección tenga suficiente espacio de almacenamiento para la colección y sus índices. El fragmento de destino requiere al menos ( Collection storage size + Index Size ) * 2 bytes disponibles.

    • Asegúrese de que su capacidad de E/S esté por debajo del 50%.

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

Importante

La base de datos no exige estos requisitos. Si no se asignan suficientes recursos, pueden producirse las siguientes consecuencias:

  • La base de datos se está quedando sin espacio y se está apagando

  • disminución del rendimiento

  • La operación tardó más de lo esperado

Si su aplicación tiene períodos de tiempo con menos tráfico, realice esta operación en la colección durante ese tiempo si es posible.

Este ejemplo mueve una colección no fragmentada llamada inventory de la base de datos app al fragmento shard02.

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

Para obtener una lista de los ID de fragmentos disponibles,sh.status() ejecute. Para más detalles, consulte la salida de sh.status().

Volver

moveChunk

En esta página