Definition
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.The
dbHashcommand obtains a shared (S) lock on the database, which prevents writes until the command completes.dbHashhas the following syntax:db.runCommand ( { dbHash: 1, collections: [ <collection1>, ... ] } ) FieldTypeDescriptiondbHashAny type
The command to run. Specify any value.
collectionsarray
Optional. An array of collection names.
Either specify the collections for which to return the hash values, or omit or specify an empty array to return the hash values for all collections in the database.
Behavior
Non-Existent Collection
If a collection in the collections array is non-existent,
dbHash does not return a hash value for that collection.
Restrictions
MongoDB drivers automatically set afterClusterTime for operations associated with causally
consistent sessions. Starting in MongoDB 4.2, the
dbHash command no longer support afterClusterTime. As such, dbHash cannot be associated
with causally consistent sessions.
Return Document
The command returns a document with the following fields:
Field | Description | |||||
|---|---|---|---|---|---|---|
host | The host and port of the | |||||
| A document with the collections and their corresponding hash values. | |||||
| An array that lists the capped collections. | |||||
| A document with the collections and their corresponding UUID values. | |||||
| The aggregate hash value for these collections. | |||||
| Number of milliseconds to generate the hash. | |||||
okoperationTime$clusterTime | Returned with every command. See also Response for details. |
Examples
Return Hash Values for All Collections in a Database
The following example returns the hash value for all collections in the
database test:
use test db.runCommand( { dbHash: 1 } )
The operation returns the following document:
{ "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" : NumberLong("6567898567824900097") } } }
Return Hash Values for Specified Collections in a Database
The following example returns the hash value for the collections inventory
and orders in the database test:
use test db.runCommand( { dbHash: 1, collections: [ "inventory", "orders" ] } )
The operation returns the following document:
{ "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" : NumberLong("6567898567824900097") } } }