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, ejecute el abortMoveCollection comando en la admin base de datos.
Control de acceso
Si su implementación tiene habilitado el control de acceso, el rol le permite ejecutar enableSharding el abortMoveCollection comando.
Pasos
Deja de mover la colección
Para detener el traslado de una colección, ejecute el abortMoveCollection comando. El siguiente ejemplo detiene el traslado en curso de la app.inventory colección shard01 de shard02 a.
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 }) }
Confirmar que la operación de movimiento se detuvo
Para confirmar que la colección no se movió al nuevo fragmento, utilice la $collStats etapa de canalización.
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 un resultado similar al siguiente:
[ { shard: 'shard01' } ]