$size (配列の長さ)

最終更新:2026-10-09

$size (配列の長さ)

$size は、配列フィールドの長さが指定した値とちょうど一致するドキュメントにマッチします。`{ tags: { $size: 3 } }` はタグがちょうど 3 つのドキュメントに一致します。クエリでは $size は厳密な値のみ受け付けるため、{ $size: { $gt: 3 } } とは書けません。範囲条件には集計の $size を使った $expr を使います。

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

📝 構文

{ <field>: { $size: <length> } }

⚙️ パラメータ

フィールドマッチ対象の配列フィールド。
長さ配列要素の正確な数。

戻り値:一致するドキュメントのカーソル

▶ 例

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

// $size: タグがちょうど 3 つの記事
db.articles.find({ tags: { $size: 3 } })

// タグが 3 つ以上($expr が必要)
db.articles.find({ $expr: { $gte: [{ $size: '$tags' }, 3] } })

出力:

// タグがちょうど 3 つの記事を返す。2 つ目は 3 つ以上の記事を返す

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$size で長さが値より大きいクエリは書けますか?
A直接は書けません。$expr: { $gt: [{ $size: '$tags' }, 3] } を使います。
Q$size はフィールドが存在しないドキュメントに一致しますか?
Aいいえ。フィールドが存在し、配列である必要があります。
Q$size: 0 で空の配列に一致しますか?
Aはい。{ tags: { $size: 0 } } は空の配列に一致します。ただしフィールドが存在しないものは一致しません。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%