$size (配列の長さを取得)

最終更新:2026-10-09

$size (配列の長さを取得)

$size は配列の要素数を 0 以上の整数として返します。最も一般的な配列のメタデータ演算子で、注文アイテム数のカウント、空配列の検出、$expr を使った $match 内での配列長によるフィルタリングなどに使われます。引数は配列でなければならず、文字列や数値を渡すとエラーになります。文字列の長さには $strLenCP を使います。$size は $match の通常のクエリ構文では使えず、$expr を経由する必要があります。

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

📝 構文

{ $size: <array> }

⚙️ パラメータ

配列長さを計算する配列式。

戻り値:要素数を非負の整数で返します。引数が配列でない場合は例外を送出

▶ 例

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

// $size: 注文ごとのアイテム数を数える
db.orders.aggregate([
  { $project: {
      itemCount: { $size: '$items' }
  } }
])

出力:

{ '_id': 1, 'itemCount': 2 }
{ '_id': 2, 'itemCount': 5 }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$size をクエリ条件で使えますか?
A通常のクエリ構文では使えません。$expr で包みます。例: { $expr: { $gt: [{ $size: '$tags' }, 2] } }。
Qフィールドが欠落しているとどうなりますか?
Aエラーになります。$ifNull や $cond でチェックし、欠落は 0 として扱ってください。
Q文字列の長さを数えられますか?
Aいいえ — 文字列は配列ではありません。文字列の長さには $strLenCP を使います。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%