Puede dejar de mover una colección no fragmentada mediante el uso de
abortMoveCollection dominio.
Acerca de esta tarea
Para detener una moveCollection operación en curso, ejecuta el comando abortMoveCollection en la base de datos admin.
Control de acceso
Si tu implementación tiene control de acceso activado, el rol enableSharding te permite ejecutar el comando abortMoveCollection.
Pasos
Detener el movimiento de la colección
Para dejar de mover una colección, ejecuta el comando abortMoveCollection. El siguiente ejemplo detiene la migración en curso de la colección app.inventory de shard01 a shard02.
db.adminCommand( { abortMoveCollection: "app.inventory" } )
Después de ejecutar el comando abortMoveCollection, la salida del comando devuelve ok: 1 y se parece a lo siguiente:
{ ok: 1, '$clusterTime': { clusterTime: Timestamp( { t: 1726524884, i: 28 } ), signature: { hash: Binary.createFromBase64('AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0), keyId: Long('0') } }, operationTime: Timestamp({ t: 1726524884, i: 28 }) }
Confirme que la operación de traslado se detuvo
Para confirmar que la colección no se trasladó a la nueva partición, utiliza la etapa del pipeline $collStats.
El siguiente ejemplo muestra cómo confirmar que la colección app.inventory permanece en el mismo fragmento:
db.inventory.aggregate( [ { $collStats: {} }, { $project: { "shard": 1 } } ] )
Esta etapa del pipeline tiene una salida similar a la siguiente:
[ { shard: 'shard01' } ]