Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

dbHash

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 行为
  • returnDocument
  • 示例
dbHash

返回数据库中集合的哈希值以及这些集合的 MD 5值。 dbHash可用于比较跨 mongod实例的数据库,例如跨副本集节点的数据库。

dbHash 命令在数据库上获得共享 (S) 锁,这会在命令完成之前禁止写入。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

M 0 、M 2和 M 5集群或无服务器实例不支持此命令。 有关更多信息,请参阅不支持的命令。

该命令具有以下语法:

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

该命令接受以下字段:

字段
类型
说明
dbHash
任何类型
要运行的命令。可以指定任何值。
collections
阵列

可选。集合名称的数组。

指定要返回哈希值的集合,或者省略或指定一个空数组以返回数据库中所有集合的哈希值。

如果 collections 数组中的某个集合不存在,则 dbHash 不会返回该集合的哈希值。

dbHash 命令不再支持 afterClusterTime。因此,dbHash 不能与因果一致会话相关联。

此命令将返回一个包含以下字段的文档:

字段
说明
主机
运行命令的 mongod 实例的主机和端口。
collections

包含集合及其相应哈希值的文档。

{
<collection1>: <hash1>,
<collection2>: <hash2>,
...
}
capped
列出固定大小集合的数组。
uuids

包含集合及其相应 UUID 值的文档。

{
<collection1>: <UUID1>,
<collection2>: <UUID2>,
...
}
md5
这些集合的聚合哈希值。
timeMillis
生成哈希值所需的毫秒数。
ok
operationTime
$clusterTime
每个命令都会返回。详情另见响应

以下示例返回数据库 test 中所有集合的哈希值:

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

该操作将返回以下文档:

{
"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")
}
}
}

以下示例返回数据库 test 中集合 inventoryorders 的哈希值:

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

该操作将返回以下文档:

{
"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")
}
}
}

后退

数据大小