Definição
dbHashReturns the hash values of the collections in a database and an MD5 value for these collections.
dbHashis useful to compare databases acrossmongodinstances, 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.
Compatibilidade
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
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { dbHash: 1, collections: [ <collection1>, ... ], maxTimeMS: <integer> } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Tipo | Descrição |
|---|---|---|
| qualquer tipo | O comando a executar. Especifique qualquer valor. |
| 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 Para retornar os valores de hash de todas as coleção no banco de dados, especifique o array vazio. |
| non-negative integer | Opcional. Especifica um limite de tempo em milissegundos. Se você não especificar um valor para O MongoDB encerra as operações que excedem o limite de tempo alocado usando o mesmo mecanismo de |
Comportamento
Coleção não existente
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.
Restrições
The dbHash command no longer support afterClusterTime. As such, dbHash cannot be associated with causally consistent sessions.
documento de devolução
O comando retorna um documento com os seguintes campos:
Campo | Descrição | |||||
|---|---|---|---|---|---|---|
Anfitrião | O host e a porta da instância do | |||||
| Um documento com as coleções e seus valores de hash correspondentes. | |||||
| Uma array que relaciona as coleções limitadas. | |||||
| Um documento com as collections e seus valores UUID correspondentes. | |||||
| O valor de hash agregado para estas coleções. | |||||
| Número de milissegundos para gerar o hash. | |||||
| Retornado com cada comando. Consulte também Resposta para obter detalhes. |
Exemplos
Gerar valores de hash para todas as collections em um banco de dados
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") } } }
Valores hash retornados para collections específicas em um banco de dados
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") } } }