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

$ hexash(集計式)

バージョン8.3の新機能

$hexHash

UTF-8 string または binary データ(BinData)からハッシュ値の大文字の16進数文字列表現を生成して返します。16進数文字列ではなくbinary データを取得するには、$hash を使用します。

$hexHash の構文は次のとおりです。

{
$hexHash: {
input: <expression>,
algorithm: <string>
}
}
フィールド
タイプ
説明

input

必須。ハッシュする値。有効な UTF-8 string または BinData に解決される必要があります。

algorithm

文字列

必須。ハッシュアルゴリズム。指定できる値は以下のとおりです。

  • "md5"

  • "sha256"

  • "xxh64"

$hexHash は、大文字の 16進数文字列を返します。出力の長さはアルゴリズムによって異なります。

アルゴリズム
出力の長さ(文字)

"md5"

32

"sha256"

64

"xxh64"

16

inputnull または未定義に解決されるか、欠落しているフィールドを参照する場合、$hexHashnull を返します。

input が UTF-8 string または BinData 以外のタイプに解決される場合、$hexHash はエラーを返します。

algorithm が許容値の 1 つではない場合、$hexHash はエラーを返します。

重要

MD5 は暗号化された安全なアルゴリズムではないため、セキュリティに注意が必要なアプリケーションには適していません。機密データをハッシュしている場合は、代わりに "sha256" を使用します。

MD5 も FIPSモードでは無効になっています。配置が FIPSモードを有効にして実行されている場合は、代わりに "sha256" または "xxh64" を使用します。

次の例では、この document で files という名前のコレクションを使用します。

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

次の例では、filenameフィールドの SHA-256 16 進ハッシュを計算します。

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

hexHashフィールドには、SHA-256 ハッシュが 64 文字の大文字16進数文字列として含まれます。別のアルゴリズムを使用するには、algorithm の値を変更します。例、"xxh64" は 16 文字の string を生成します。

inputnull であるか、input が欠落しているフィールドを参照している場合、$hexHashnull を返します。

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

戻る

$hash

項目一覧