$binarySize (バイナリサイズ)
最終更新:2026-10-09
$binarySize (バイナリサイズ)
$binarySize はバイナリデータ(BinData)のバイト数を返します。文字列を渡すと UTF-8 のバイト長を返します。添付ファイルのサイズ監視、アップロード上限のチェック、ストレージ容量の見積もりなどに使われます。バイナリでも文字列でもない入力はエラーになります。文字列に対しては $strLenBytes と同じ結果になります。空のバイナリは 0 を返します。
| カテゴリ | 文字列 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $binarySize: <expression> }
⚙️ パラメータ
| 式 | 必須。バイナリまたは文字列の式。 |
|---|
戻り値:バイト単位のサイズを整数で返します。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $binarySize: 添付ファイルのサイズ
db.files.aggregate([
{ $project: { size: { $binarySize: '$data' } } }
])
出力:
{ "_id": 1, "size": 4096 }
{ "_id": 2, "size": 0 }
📌 注意事項
- BinData はバイト数、文字列は UTF-8 のバイト長を返す
- バイナリ・文字列以外(数値やドキュメント)はエラー
- 空のバイナリは 0 を返す
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q文字列を渡せますか?
Aはい — UTF-8 のバイト数として数えられます。
Q数値を渡すとどうなりますか?
Aエラーになります。受け付けられるのはバイナリと文字列だけです。
Q$strLenBytes と同じですか?
A文字列に対しては同じです。$binarySize はさらに BinData も扱えます。