count() (カーソルの件数カウント)
最終更新:2026-10-09
count() (カーソルの件数カウント)
count() は現在のカーソルが返すであろうドキュメントの件数を数えます: `db.users.find({ age: { $gt: 20 } }).count()`。カーソルに対して動作するため、find() のフィルタが先に適用されます。このメソッドは非推奨であることに注意してください。公式の置き換えである `db.users.countDocuments()` は同等で、シャーディングクラスタでもより正確です。
| カテゴリ | カーソル |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.find(<filter>).count()
戻り値:カーソルが返すドキュメント数(整数)。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// count: 20歳より上のユーザー数を数える
const n = db.users.find({ age: { $gt: 20 } }).count()
print(n)
出力:
35
📌 注意事項
- 非推奨。新しいコードでは countDocuments() を使う
- countDocuments() と意味的に同等だが、シャードでは精度が劣る可能性がある
- count() はカーソルを消費しない。反復を続けられる
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Qカーソルの count() はまだ使えますか?
A動作はしますが非推奨です。新しいコードでは同等でより正確な countDocuments() を使います。
Qcount() は countDocuments() と違いますか?
A意味論は同じ正確なカウント操作です。countDocuments() が推奨される置き換えで、シャードでもより信頼性があります。
Qcount() の後もデータを取得できますか?
Aできます。count() は数えるだけなので、カーソルはその後も toArray()/forEach() で使えます。