Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Dividir grupos em um cluster fragmentado

Por padrão, o MongoDB pode dividir um chunk somente ao migrar dados pertencentes a ele. No entanto, é possível dividir chunks manualmente se tiver uma grande quantidade de dados no cluster e poucos chunks, como é o caso depois de distribuir um cluster usando dados existentes.

Para dividir chunks manualmente, use o comando split com os campos middle ou find. mongosh fornece os métodos auxiliares sh.splitFind() e sh.splitAt().

splitFind() divide a parte que contém o primeiro documento retornado que corresponde a essa query em duas partes do mesmo tamanho. Você deve especificar o namespace completo (ou seja, "<database>.<collection>") da coleção fragmentada para splitFind(). A query em splitFind() não precisa usar a chave fragmentada, embora quase sempre faça sentido fazer isso.

Exemplo

O seguinte comando divide o chunk que contém o valor de 63109 para o campo zipcode na collection people do banco de dados records:

sh.splitFind( "records.people", { "zipcode": "63109" } )

Use splitAt() para dividir um chunk em dois, usando o documento consultado como o limite inferior no novo chunk:

Exemplo

O seguinte comando divide o bloco que contém o valor de 63109 para o campo zipcode na coleção people do banco de dados records.

sh.splitAt( "records.people", { "zipcode": "63109" } )

Observação

splitAt() não necessariamente divide o pedaço em dois pedaços de tamanhos iguais. A divisão ocorre no local do documento que corresponde à query, independentemente de onde esse documento esteja no bloco.

Dica

Veja também:

← Criar faixas em um cluster fragmentado