Binary (バイナリデータ)
最終更新:2026-10-09
Binary (バイナリデータ)
Binary 型は画像・ファイル・暗号化データ・UUID を格納し、Base64 文字列よりコンパクトです。サブタイプ(0: 汎用、2: 旧バイナリ、3: レガシー UUID、4: UUID、7: 暗号化)を持ちます。16MB のドキュメント上限内で直接格納し、より大きなファイルは GridFS を使います。mongosh では `BinData(
| カテゴリ | BSON 型 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
BinData(<subtype>, "<base64>")
UUID("<uuid string>")
Binary.createFromBase64("<base64>")
戻り値:Binary の BSON 値を返します
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// Binary: バイナリデータの格納
use shop
db.files.insertOne({ name: 'logo.png', data: BinData(0, 'iVBORw0KGgo=') })
出力:
{ _id: ObjectId('...'), name: 'logo.png', data: Binary.createFromBase64('iVBORw0KGgo=') }
📌 注意事項
- 大きなファイルはドキュメントではなく GridFS に(16MB 上限)
- UUID はサブタイプ 4 で格納するとドライバ間で一貫する
- Base64 文字列は Binary より約 33% 余分に容量を消費する
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q画像を直接 MongoDB に格納できますか?
A16MB 未満なら Binary フィールドで格納できます。それを超える場合は GridFS やオブジェクトストレージを使います。
QUUID は MongoDB でどう格納されますか?
ABinary のサブタイプ 4(UUID)として格納されます。ドライバが自動的に変換します。
QBinary と Base64 文字列、どちらを使うべきですか?
Aバイナリデータには Binary(コンパクトでサブタイプ付き)、テキストには String を使います。