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

ドキュメントをカウント

このガイドでは、 MongoDB PHPライブラリを使用して、コレクション内のドキュメント数の正確な推定値を取得する方法を説明します。 次のメソッドは、コレクション内のドキュメントをカウントします。

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

  • MongoDB\Collection::estimatedDocumentCount():コレクション内のドキュメントの推定数を返します

このガイドの例では、 Atlasサンプルデータセットsample_trainingデータベースのcompaniesコレクションを使用します。 PHPアプリケーションからこのコレクションにアクセスするには、Atlas クラスターに接続するMongoDB\Clientをインスタンス化し、次の値を$collection変数に割り当てます。

$collection = $client->sample_training->companies;

MongoDB配置を作成し、サンプルデータセットをロードする方法については、MongoDBの使用開始ガイドを参照してください。

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

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

コレクション内のすべてのドキュメントの数を返すには、次の例に示すように、空のクエリフィルター配列をcountDocuments()メソッドに渡します。

$result = $collection->countDocuments([]);
echo 'Number of documents: ', $result;
Number of documents: 9500

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

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

$result = $collection->countDocuments(['founded_year' => 2010]);
echo 'Number of companies founded in 2010: ', $result;
Number of companies founded in 2010: 33

オプション値を指定する配列を渡すことで、 countDocuments()メソッドの動作を変更できます。 次の表では、カウント操作をカスタマイズするために設定できるいくつかのオプションについて説明しています。

オプション
説明

collation

操作に使用する 照合
。詳細については、このページの「照合」セクションを参照してください。タイプ:array|object

hint


操作に使用するインデックス。タイプ:string|array|object

comment


操作に添付するコメント。タイプ: 任意の有効なBSONタイプ

limit


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

maxTimeMS


操作を実行できる最大時間(ミリ秒単位)。タイプ:integer

skip


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

readPreference

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

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

$result = $collection->countDocuments(
['number_of_employees' => 50],
['limit' => 100],
);
echo 'Number of companies with 50 employees: ', $result;
Number of companies with 50 employees: 100

操作の 照合 を指定するには、collation オプションを設定する $options 配列パラメータを操作メソッドに渡します。照合ルールを構成する配列に collation オプションを割り当てます。

次の表では、照合を構成するために設定できるフィールドについて説明しています。

フィールド
説明

locale

(必須)Unicode 用の国際コンポーネント(ICU)ロケールを指定します。サポートされているロケールのリストについては、 MongoDB Serverマニュアルの 「照合ロケールとデフォルト パラメーター」

を参照してください。データ型:string

caseLevel

(任意)大文字と小文字の比較を含めるかどうかを指定します。

trueに設定すると、比較動作は フィールドの値によって異なります。strength

strength 1の場合、 PHPライブラリは基本文字と大文字と小文字を比較します。


- がstrength 2の場合、 PHPライブラリは基本文字、発音区別符号、その他のセカンダリ
レベルの相違、大文字と小文字を比較します。

-strength がその他の値の場合、このフィールドは無視されます。

falseに設定されている場合、 PHPライブラリには強度レベル1 または2

での大文字と小文字の比較が含まれません。データ型:bool
デフォルト:false

caseFirst



(任意)三次レベルの比較中に、大文字と小文字の相違のソート順序を指定します。データ型:string
デフォルト:"off"

strength

(任意) ICU

ドキュメントで定義されている比較のレベルを指定します。データ型:int
デフォルト:3

numericOrdering

(任意)ドライバーが数字の string を数値として比較するかどうかを指定します。

trueに設定されている場合、 PHPライブラリは数字の string を数値として比較します。例、string10 と " "2 を比較する場合、ライブラリは string の数値を使用し、"10 " を "2 " より大きいものとして扱います。

falseに設定されている場合、 PHPライブラリは数字の string を string として比較します。例、string "10 " と " " を比較する場合、ライブラリは一度に2 1 文字ずつ比較し、" " を10 "2 " より小さいものとして扱います。詳細については、

MongoDB Serverマニュアルの「 照合制限

」を参照してください。データ型:bool
デフォルト:false

alternate



(任意)ライブラリが空白と句読点を比較目的の基本文字として考慮するかどうかを指定します。データ型:string
デフォルト:"non-ignorable"

maxVariable

(任意) alternate"shifted"フィールドが

に設定されている場合にライブラリが無視可能と見なす文字を指定します。データ型:string
デフォルト:"punct"

backwards

(任意)発音区別符号を含む string を、string

の後ろから前にソートするかどうかを指定します。データ型:bool
デフォルト:false

照合と各フィールドに可能な値の詳細については、 MongoDB Serverマニュアルの「 照合 」エントリを参照してください。

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

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

$result = $collection->estimatedDocumentCount();
echo 'Estimated number of documents: ', $result;
Estimated number of documents: 9500

オプション値を指定する配列をパラメーターとして渡すことで、 estimatedDocumentCount()メソッドの動作を変更できます。 次の表では、 配列に設定できるオプションについて説明しています。

オプション
説明

comment


操作に添付するコメント。タイプ: 任意の有効なBSONタイプ

maxTimeMS


操作を実行できる最大時間(ミリ秒単位)。タイプ:integer

readConcern

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

readPreference

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

session


操作に関連付けるクライアントセッション。タイプ:MongoDB\Driver\Session

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

$result = $collection->estimatedDocumentCount(['maxTimeMS' => 1000]);
echo 'Estimated number of documents: ', $result;
Estimated number of documents: 9500

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