文档菜单
文档首页
/
MongoDB 手册
/ / /

dbHash

在本页

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 行为
  • 返回文档
  • 示例
dbHash

返回数据库中集合的哈希值以及这些集合的MD5值。dbHash命令用于比较跨mongod实例的数据库,例如副本集成员之间的数据库。

注意

dbHash命令在数据库上获取一个共享(S)锁,这会阻止写入直到命令完成。

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

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

重要

此命令在M0、M2和M5集群或无服务器实例中不受支持。有关更多信息,请参阅不受支持的命令。

该命令具有以下语法

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

命令接受以下字段

字段
类型
描述
dbHash
任何类型
要运行的命令。指定任何值。
collections
数组

可选。集合名称数组。

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

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

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

该命令返回包含以下字段的文档

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

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

{
<collection1>: <hash1>,
<collection2>: <hash2>,
...
}
固定大小
列出固定大小集合的数组。
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")
}
}
}

以下示例返回数据库 testinventoryorders 集合的哈希值。

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

返回

dataSize