Você pode parar de mover uma collection não fragmentada usando o comando abortMoveCollection .
Sobre esta tarefa
Para interromper uma operação moveCollection em andamento, execute o comando abortMoveCollection no banco de banco de dados admin .
Controle de acesso
Se seu sistema tiver o controle de acesso ativado, a função enableSharding permitirá que você execute o comando abortMoveCollection .
Passos
Parar de mover a coleção
Para parar de mover uma collection, execute o comando abortMoveCollection . O exemplo a seguir interrompe a movimentação em andamento da collection app.inventory de shard01 para shard02.
db.adminCommand( { abortMoveCollection: "app.inventory" } )
Após executar o comando abortMoveCollection , a saída de comando retorna ok: 1 e é semelhante ao seguinte:
{ 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 se a operação de mudança foi interrompida
Para confirmar que a coleção não foi movida para o novo fragmento, use o estágio de pipeline $collStats .
O exemplo a seguir mostra como confirmar que a coleção app.inventory permanece no mesmo fragmento:
db.inventory.aggregate( [ { $collStats: {} }, { $project: { "shard": 1 } } ] )
Esse estágio do pipeline tem uma saída semelhante a esta:
[ { shard: 'shard01' } ]