Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$hexHash (expresión de agregación)

Nuevo en la versión 8.3.

$hexHash

Genera y devuelve una representación de string hexadecimal en mayúsculas de un valor hash de una string UTF-8 o datos binary (BinData. Para obtener datos binary en lugar de un string hexadecimal, use $hash.

$hexHash tiene la siguiente sintaxis:

{
$hexHash: {
input: <expression>,
algorithm: <string>
}
}
Campo
Tipo
Descripción

input

Obligatorio. El valor a cifrar (hash). Debe resolver en una string UTF-8 válida o BinData.

algorithm

String

Obligatorio. El algoritmo de hash. Valores aceptados:

  • "md5"

  • "sha256"

  • "xxh64"

$hexHash devuelve una string hexadecimal en mayúsculas. La longitud del resultado depende del algoritmo:

algoritmo
Longitud de la salida (caracteres)

"md5"

32

"sha256"

64

"xxh64"

16

Si input se resuelve en null o indefinido, o se refiere a un campo ausente, $hexHash retorna null.

Si input se resuelve en un tipo diferente a una UTF-8 string o BinData, $hexHash devuelve un error.

Si algorithm no es uno de los valores aceptados, $hexHash devuelve un error.

Importante

MD5 no es un algoritmo criptográficamente seguro y no es adecuado para aplicaciones sensibles a la seguridad. Si estás aplicando hashing a información confidencial, usa "sha256" en su lugar.

MD5 también está deshabilitado en el modo FIPS. Si tu implementación se ejecuta con el modo FIPS habilitado, utiliza "sha256" o "xxh64" en su lugar.

Los siguientes ejemplos utilizan una colección denominada files junto con este document:

db.files.insertMany( [
{ _id: 1, filename: "report.pdf" }
] )

El siguiente ejemplo calcula el hash hexadecimal SHA-256 del campo filename:

db.files.aggregate( [
{
$project: {
filename: 1,
hexHash: {
$hexHash: {
input: "$filename",
algorithm: "sha256"
}
}
}
}
] )
[
{
_id: 1,
filename: 'report.pdf',
hexHash: '6466E450A16B77B865C5829D6B6C56D9F892956475642DBEB9CCC4340FE01B15'
}
]

El hexHash campo contiene la SHA-256 hash como una 64-carácter mayúsculas string hexadecimal. Para utilizar un algoritmo diferente, cambia el valor algorithm. Por ejemplo, "xxh64" produce una string de 16caracteres.

Si input es null, o input se refiere a un campo faltante, $hexHash devuelve null:

db.aggregate( [
{
$documents: [
{ val: null },
{}
]
},
{
$project: {
hexHash: {
$hexHash: {
input: "$val",
algorithm: "sha256"
}
}
}
}
] )
[
{
hexHash: null
},
{
hexHash: null
}
]

Volver

$hash

En esta página