Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

dbHash (comando de banco de dados)

dbHash

Returns the hash values of the collections in a database and an MD5 value for these collections. dbHash is useful to compare databases across mongod instances, such as across members of replica sets.

Aviso

The dbHash command obtains a shared (S) lock on the database, which prevents writes until the command completes.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

Importante

This command is not supported in M0 and Flex clusters. For more information, see Unsupported Commands.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

O comando tem a seguinte sintaxe:

db.runCommand(
{
dbHash: 1,
collections: [ <collection1>, ... ],
maxTimeMS: <integer>
}
)

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

dbHash

qualquer tipo

O comando a executar. Especifique qualquer valor.

collections

array

Opcional. Um array de nomes de coleção no banco de dados atual. Especifique cada coleção apenas pelo nome. Não qualifique um nome com o banco de dados, como test.orders.

Para retornar os valores de hash de todas as coleção no banco de dados, especifique o array vazio.

maxTimeMS

non-negative integer

Opcional.

Especifica um limite de tempo em milissegundos. Se você não especificar um valor para maxTimeMS, as operações não atingirão o tempo limite. Um valor 0 especifica explicitamente o comportamento ilimitado padrão.

O MongoDB encerra as operações que excedem o limite de tempo alocado usando o mesmo mecanismo de db.killOp(). O MongoDB só encerra uma operação em um de seus pontos de interrupção designados.

If a collection in the collections array is non-existent, dbHash does not return a hash value for that collection. A database-qualified name such as test.orders never matches, because dbHash compares each entry against the collection names in the current database.

Se nenhum nome no array collections corresponder a uma coleção ou se uma coleção existir, mas estiver vazia, dbHash retornará o valor md5 de uma entrada vazia, d41d8cd98f00b204e9800998ecf8427e.

Observação

A saída de dbhash não distingue entre coleções inexistentes e coleções vazias.

Antes de comparar os valores de md5 entre as implantações, confirme se o campo collections do documento de retorno lista cada coleção que você espera.

The dbHash command no longer support afterClusterTime. As such, dbHash cannot be associated with causally consistent sessions.

O comando retorna um documento com os seguintes campos:

Campo
Descrição

Anfitrião

O host e a porta da instância do mongod na qual o comando é executado.

collections

Um documento com as coleções e seus valores de hash correspondentes.

{
<collection1>: <hash1>,
<collection2>: <hash2>,
...
}

capped

Uma array que relaciona as coleções limitadas.

uuids

Um documento com as collections e seus valores UUID correspondentes.

{
<collection1>: <UUID1>,
<collection2>: <UUID2>,
...
}

md5

O valor de hash agregado para estas coleções.

timeMillis

Número de milissegundos para gerar o hash.

ok
operationTime
$clusterTime

Retornado com cada comando. Consulte também Resposta para obter detalhes.

O exemplo a seguir retorna o valor de hash para todas as coleções no banco de dados test:

use test
db.runCommand( { dbHash: 1 } )

A operação retorna o seguinte documento:

{
"host" : "myHostName.local:27017",
"collections" : {
"foo" : "d27b769230edc551d869060ec3fb68bd",
"inventory" : "ec3d821581ea1bd3aa8196c94b946874",
"log" : "d41d8cd98f00b204e9800998ecf8427e",
"orders" : "0242c0a128c284ea9576a34db2306c12",
"restaurants" : "5dc9b88091c36f0d529567b5b6e3fc92",
"zipcodes" : "31ede812bf397509a87359c65bf2a08c"
},
"capped" : [
"log"
],
"uuids" : {
"foo" : UUID("469592fe-3bfe-425e-975f-cedbe0c4741d"),
"inventory" : UUID("0830e0ad-cc24-4fc7-80d0-8e22fe45e382"),
"log" : UUID("4be024ff-711b-4ab8-836b-dee662e090f1"),
"orders" : UUID("755be489-745f-400c-ac3b-f27525ad0108"),
"restaurants" : UUID("520b56ec-3276-4904-b6e5-286bc9bfa648"),
"zipcodes" : UUID("12e97b70-c174-40af-a178-5d83a241fe20")
},
"md5" : "0cb7417ae9d9eb865000b4debdc671da",
"timeMillis" : 53,
"ok" : 1,
"operationTime" : Timestamp(1529208582, 4),
"$clusterTime" : {
"clusterTime" : Timestamp(1529208582, 4),
"signature" : {
"hash" : BinData(0,"X3MmevDqUgCVvN1AhnT+fiOL/Lc="),
"keyId" : Long("6567898567824900097")
}
}
}

O exemplo a seguir retorna o valor de hash para as collections inventory e orders no banco de dados test:

use test
db.runCommand( { dbHash: 1, collections: [ "inventory", "orders" ] } )

A operação retorna o seguinte documento:

{
"host" : "myHostName.local:27017",
"collections" : {
"inventory" : "ec3d821581ea1bd3aa8196c94b946874",
"orders" : "0242c0a128c284ea9576a34db2306c12"
},
"capped" : [ ],
"uuids" : {
"inventory" : UUID("0830e0ad-cc24-4fc7-80d0-8e22fe45e382"),
"orders" : UUID("755be489-745f-400c-ac3b-f27525ad0108")
},
"md5" : "cb4676f316ff2ff29c701a5edd18afe3",
"timeMillis" : 0,
"ok" : 1,
"operationTime" : Timestamp(1529208801, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1529208801, 1),
"signature" : {
"hash" : BinData(0,"I4z4a4Mgs+tcx0MP5xIU8DYAMB0="),
"keyId" : Long("6567898567824900097")
}
}
}