AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ドキュメントをカウント

このガイドでは、 Rubyドライバーを使用して、コレクション内のドキュメント数の正確で推定値を取得する方法を学習できます。次のメソッドは、コレクション内のドキュメントをカウントします。

  • count_documents:クエリフィルターに一致するドキュメント、またはコレクションに存在するドキュメントの正確な数を返します

  • estimated_document_count:コレクションに存在するドキュメントの推定数を返します

このガイドの例では、Atlasサンプルデータセットsample_trainingデータベースの companiesコレクションを使用します。Rubyアプリケーションからこのコレクションにアクセスするには、Atlas クラスターに接続する Mongo::Clientオブジェクトを作成し、次の値を database 変数と collection 変数に割り当てます。

database = client.use('sample_training')
collection = database['companies']

MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、MongoDBを使い始めるガイドを参照してください。

コレクション内のドキュメントの数をカウントするには、 count_documentsメソッドを使用します。 特定の検索条件に一致するドキュメントの数をカウントするには、クエリフィルターをcount_documentsメソッドに渡します。

Tip

クエリの指定の詳細については、「 クエリの指定 」ガイドを参照してください。

コレクション内のすべてのドキュメントの数を返すには、次の例に示すように、クエリフィルターを渡せずに count_documents メソッドを呼び出します。

result = collection.count_documents
puts "Number of documents: #{result}"
Number of documents: 9500

特定の検索条件に一致するドキュメントの数を返すには、クエリフィルターをcount_documentsメソッドに渡します。

次の例では、 founded_yearフィールドの値が2010であるドキュメントの数をカウントします。

result = collection.count_documents(founded_year: 2010)
puts "Number of companies founded in 2010: #{result}"
Number of companies founded in 2010: 33

オプション値を指定する 2 つ目のパラメーターを渡すことで、count_documents メソッドの動作を変更できます。次の表では、カウント操作をカスタマイズするために設定できるオプションについて説明しています。

オプション
説明

collation

操作に使用する 照合
。タイプ:Hash

hint

操作に使用するインデックス。
タイプ: Hash

comment

操作に添付するコメント。
タイプ: Object

limit


カウントするドキュメントの最大数。この値は正の整数である必要があります。タイプ:Integer

max_time_ms

操作が実行できる最大時間 (ミリ秒)。
タイプ: Integer

skip

ドキュメントをカウントする前にスキップするドキュメントの数。
タイプ: Integer

read

操作に使用する読み込み設定 (read preference)です。詳細については、 MongoDB Serverマニュアルの「 読み込み設定
」を参照してください。タイプ:Hash

次の例では、 count_documentsメソッドを使用して、 number_of_employeesフィールドの値が50であるドキュメントの数をカウントし、最大100の結果をカウントするように操作に指示します。

result = collection.count_documents({ number_of_employees: 50 }, limit: 100)
puts "Number of companies with 50 employees: #{result}"
Number of companies with 50 employees: 100

重要

オプション パラメータを count_documents メソッドに渡す場合は、クエリフィルターを括弧で囲む必要があります({})。

estimated_document_countメソッドを呼び出すと、コレクション内のドキュメント数の推定値を取得できます。 メソッドは、コレクションメタデータに基づいてドキュメントの量を推定します。これは、正確なカウントを実行するよりも高速である可能性があります。

次の例では、 コレクション内のドキュメントの数を見積ります。

result = collection.estimated_document_count
puts "Estimated number of documents: #{result}"
Estimated number of documents: 9500

オプション値を指定するパラメーターを渡すことで、estimated_document_count メソッドの動作を変更できます。次の表では、操作をカスタマイズするために設定できるオプションについて説明します。

オプション
説明

comment

操作に添付するコメント。
タイプ: Object

max_time_ms

操作が実行できる最大時間 (ミリ秒)。
タイプ: Integer

read

操作に使用する読み取り保証 (read concern)。読み取り保証 (read concern) の詳細については、MongoDB Server マニュアルの「読み取り保証」を参照してください。
タイプ: Hash

次の例では、 estimated_document_countメソッドを使用してコレクション内のドキュメント数の推定値を返し、操作のタイムアウトを1000ミリ秒に設定します。

result = collection.estimated_document_count(max_time_ms: 1000)
puts "Estimated number of documents: #{result}"
Estimated number of documents: 9500

このガイドで説明されているメソッドの詳細については、次の API ドキュメントを参照してください。