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

ドキュメントをカウント

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

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

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

The examples in this guide use the companies collection in the sample_training database from the Atlas sample datasets. To access this collection from your PHP application, instantiate a MongoDB\Client that connects to an Atlas cluster and assign the following value to your $collection variable:

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

無料の MongoDB 配置を作成し、サンプルデータセットを読み込む方法については、MongoDB の スタートガイドを参照してください。

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

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

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

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

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

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

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

オプション値を指定する配列を渡すことで、 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;

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

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

フィールド
説明

locale

(Required) Specifies the International Components for Unicode (ICU) locale. For a list of supported locales, see Collation Locales and Default Parameters in the MongoDB Server manual.

Data Type: string

caseLevel

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

truestrengthに設定すると、比較の動作は

strength1
フィールドの値に応じて変わります。 - が の場合、PHP ライブラリは基本文字と大文字と小文字を比較します。

-strength2 の場合、PHP
ライブラリは基本文字、分音符号、その他のセカンダリの違い、および大文字と小文字を比較します。

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

false に設定すると、PHP ライブラリは強度レベル 1 または 2 での大文字と小文字の比較を含めません。

データ型: bool
デフォルト: false

caseFirst

(任意) 三次レベルの比較中の大文字と小文字の相違のソート順序を指定します。

データ型: string
デフォルト: "off"

strength

(Optional) Specifies the level of comparison to perform, as defined in the ICU documentation.

Data Type: int
Default: 3

numericOrdering

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

trueに設定されている場合、 PHPライブラリは数字の string を数値として比較します。例は、""10 2という文字列を比較する場合、および10 "q" では、ライブラリは string の数値を使用し、""2 として「

」より大きい場合、false に設定されている場合、 PHPライブラリは数字の string を string として比較します。例は、"" という文字列を比較する場合、および10 2"q" では、ライブラリは一度に 110 文字ずつ比較し、""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;

オプション値を指定する配列をパラメーターとして渡すことで、 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;

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