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

$hexHash ( expressão de agregação )

Novidades na versão 8.3.

$hexHash

Gera e retorna uma representação de string hexadecimal maiúscula de um valor de hash a partir de uma string UTF-8 ou dados binary (BinData). Para obter dados binary em vez de uma string hexadecimal, use $hash.

$hexHash tem a seguinte sintaxe:

{
$hexHash: {
input: <expression>,
algorithm: <string>
}
}
Campo
Tipo
Descrição

input

Obrigatório. O valor para hash. Deve resolver para uma string UTF-8 válida ou BinData.

algorithm

String

Obrigatório. O algoritmo de hash. Valores aceitos:

  • "md5"

  • "sha256"

  • "xxh64"

$hexHash retorna uma string hexadecimal maiúscula. O comprimento da saída depende do algoritmo:

Algoritmo
Comprimento de saída (caracteres)

"md5"

32

"sha256"

64

"xxh64"

16

Se input resolver para null ou indefinido, ou se referir a um campo ausente, $hexHash retornará null.

Se input for resolvido para um tipo diferente de uma string UTF-8 ou BinData, $hexHash retornará um erro.

Se algorithm não for um dos valores aceitos, $hexHash retornará um erro.

Importante

O MD5 não é um algoritmo criptograficamente seguro e não é adequado para aplicativos sensíveis à segurança. Se você estiver fazendo hash de dados confidenciais, use "sha256" em vez disso.

MD5 também está desabilitado no modo FIPS. Se sua implantação for executada com o modo FIPS ativado, utilize "sha256" ou "xxh64".

Os exemplos a seguir usam uma coleção chamada files com este document:

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

O exemplo seguinte calcula o hash hexadecimal SHA-256 do campo filename :

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

O hexHash campo contém o hash SHA-256 como uma string hexadecimal de 64caracteres em maiúsculas. Para usar um algoritmo diferente, altere o valor algorithm. Por exemplo, "xxh64" produz uma string de 16caracteres.

Se input for null ou input se referir a um campo ausente, $hexHash retornará null:

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

Voltar

$hash

Nesta página