$count (件数アキュムレータ)
最終更新:2026-10-09
$count (件数アキュムレータ)
$count は、$group 内でドキュメント数を数えるアキュムレータで、MongoDB 5.0 以降で利用できます。{ $sum: 1 } の意味が明確になった同等形です。$count ステージとの違いに注意: ステージは { count: N } のドキュメントを出力しますが、アキュムレータはグループごとの数値の件数を返します。
| カテゴリ | アキュムレータ |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $group: { _id: <key>, n: { $count: {} } } }
戻り値:グループ内のドキュメント数の整数
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $count: ステータスごとの注文数
db.orders.aggregate([
{ $group: { _id: '$status', n: { $count: {} } } }
])
出力:
{ "_id": "A", "n": 25 }
{ "_id": "B", "n": 10 }
📌 注意事項
- { $sum: 1 } と同等
- $count ステージと違いパイプラインを終了しない
- フィールド式は不要。グループの各ドキュメントを数える
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$count アキュムレータと $count ステージの違いは?
Aアキュムレータはグループごとの件数を返します。ステージは単一の { count: N } ドキュメントを出力します。
Q$count アキュムレータは引数を取りますか?
Aいいえ。{ $count: {} } と書くだけです。
Q$count と「$sum: 1」はどちらを使うべきですか?
A性能は同じで読みやすいため、$count を好んで使います。