$strLenBytes (バイト長)

最終更新:2026-10-09

$strLenBytes (バイト長)

$strLenBytes は文字列の UTF-8 バイト長を返します。ストレージ見積りやフィールドサイズ制限の定番演算子です。純粋な ASCII ではバイト数と文字数が一致しますが、中国語は 1 文字 3 バイト、絵文字は通常 4 バイトです。文字列のみを受け付け、他の型はエラーになるため、先に $toString で変換してください。結果はコードポイント基準の $strLenCP と異なることがあります。

カテゴリ文字列
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $strLenBytes: <string-expression> }

⚙️ パラメータ

文字列必須。計測する文字列式。

戻り値:UTF-8 バイト長を整数で返します。

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $strLenBytes: 記事タイトルのバイトサイズ
 db.articles.aggregate([
  { $project: { sizeBytes: { $strLenBytes: '$title' } } }
])

出力:

{ "_id": 1, "sizeBytes": 42 }
{ "_id": 2, "sizeBytes": 36 }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q中国語 1 文字は何バイトですか?
AUTF-8 では 3 バイトです。
Q$strLenCP と異なるのはいつですか?
A中国語や絵文字があると異なります。純粋な ASCII では一致します。
Qフィールドサイズ制限に使えますか?
Aはい — $match と組み合わせて制限超過のレコードをフィルタできます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%