Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

dbHash (comando de base de datos)

dbHash

Devuelve los valores hash de las colecciones en una base de datos y un valor MD5 para estas colecciones. dbHash es útil para comparar bases de datos entre instancias mongod, como entre nodos de sets de réplicas.

Advertencia

El comando dbHash obtiene un bloqueo compartido (S) sobre la base de datos, lo que impide escrituras hasta que el comando se complete.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

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

El comando toma los siguientes campos:

Campo
Tipo
Descripción

dbHash

Cualquier tipo

El comando para ejecutar. Especifica cualquier valor.

collections

arreglo

opcional. Un arreglo de nombres de colección.

Puede especificar las colecciones para las cuales regresar los valores hash, omitir o especificar un arreglo vacío para regresar los valores hash para todas las colecciones en la base de datos.

Si una colección en el array collections no existe, dbHash no devuelve un valor hash para esa colección. Un nombre calificado de base de datos como test.orders nunca coincide, porque dbHash compara cada entrada con los nombres de las colecciones en la base de datos actual.

Si ningún nombre en el array collections coincide con una colección o si existe una colección pero está vacía, dbHash devuelve el valor md5 de una entrada vacía, d41d8cd98f00b204e9800998ecf8427e.

Nota

La salida de dbhash no distingue entre colecciones inexistentes y colecciones vacías.

Antes de comparar los valores md5 entre implementaciones, confirme que el campo collections del documento de retorno enumera cada colección que espera.

El comando dbHash ya no admite afterClusterTime. Como tal, dbHash no puede asociarse con sesiones causalmente coherentes.

El comando devuelve un documento con los siguientes campos:

Campo
Descripción

host

El host y el puerto de la instancia mongod en la que se ejecuta el comando.

collections

Un documento con las colecciones y sus valores hash correspondientes.

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

capped

Un arreglo que enumera las colecciones con tamaño fijo.

uuids

Un documento con las colecciones y sus valores UUID correspondientes.

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

md5

El valor hash acumulado para estas colecciones.

timeMillis

Número de milisegundos para generar el hash.

ok
operationTime
$clusterTime

Se devuelve con cada comando. Consulta también Respuesta para más detalles.

El siguiente ejemplo devuelve el valor hash para todas las colecciones en la base de datos test:

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

La operación devuelve el siguiente 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")
}
}
}

El siguiente ejemplo devuelve el valor hash para las colecciones inventory y orders en la base de datos test:

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

La operación devuelve el siguiente 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")
}
}
}