countDocuments() (フィルタ付きの件数カウント)

最終更新:2026-10-09

countDocuments() (フィルタ付きの件数カウント)

countDocuments() はフィルタに一致するドキュメントの件数を数えます。例: `db.users.countDocuments({ age: { $gte: 18 } })`。サーバー側で実行され、正確な件数を返します。estimatedDocumentCount() と異なり、実際にフィルタを評価するため、正確ではあるものの遅くなります。精度が重要な場合の選択肢です。巨大なコレクションでパフォーマンスが気になるクエリでは、フィルタをインデックスで支えてください。

カテゴリ読み取り
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.<collection>.countDocuments(<filter>, { limit: <number> })

⚙️ パラメータ

フィルター条件カウント対象のフィルター。空の {} はすべてを数えます。
limit任意。カウントするドキュメントの上限。

戻り値:一致するドキュメント数(整数)。

▶ 例

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

// countDocuments: 成人ユーザーの件数を数える
const n = db.users.countDocuments({ age: { $gte: 18 } })
print('Adults: ' + n)

出力:

Adults: 42

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

QcountDocuments と estimatedDocumentCount はどう違いますか?
AcountDocuments() はフィルタを正確に評価しますが遅いです。estimatedDocumentCount() はコレクションのメタデータを使うため高速ですが概算です。
QcountDocuments でコレクション全体を数えるのが推奨されないのはなぜですか?
A一致をスキャンする必要があり、大規模コレクションでは遅いためです。おおよその数で十分な場合は estimatedDocumentCount() を使います。
QcountDocuments は一致なしで 0 を返しますか、それともエラーを投げますか?
Aエラーを投げず 0 を返します。条件式で安全に使えます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%