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

ドキュメントをカウント

このガイドでは、 Rustドライバーを使用して、コレクション内のドキュメント数の正確な推定値を検索する方法を学ぶことができます。count_documents() メソッドは、クエリフィルターに一致するクエリフィルター、またはコレクションに存在するドキュメントの正確な数を返し、estimated_document_count() メソッドはコレクション内のドキュメントの推定数を返します。

このガイドの例では、Atlasサンプルデータセットsample_restaurantsデータベースにあるrestaurantsコレクションを使用します。Rustアプリケーションからこのコレクションにアクセスするには、Atlas クラスターに接続する Client を作成し、次の値を my_coll 変数に割り当てます。

各実行時に対応するコードを表示するには、 AsynchronousタブまたはSynchronousタブを選択します。

let uri = "<connection string>";
let client = Client::with_uri_str(uri).await?;
let my_coll: Collection<Document> = client
.database("sample_restaurants")
.collection("restaurants");
let uri = "<connection string>";
let client = Client::with_uri_str(uri)?;
let my_coll: Collection<Document> = client
.database("sample_restaurants")
.collection("restaurants");

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

このガイドの例では、 restaurantsコレクション内のドキュメントのモデルとして次のRestaurant構造体を使用します。

#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
cuisine: String,
}

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

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

コレクション内のすべてのドキュメントの数を返すには、次の例に示すように、空の フィルタードキュメント をcount_documents() メソッドに渡します。各実行時に対応するコードを表示するには、Asynchronous タブまたは Synchronousタブを選択します。

let ct = my_coll.count_documents().await?;
println!("Number of matching documents: {}", ct);
Number of documents: 25216
let ct = my_coll.count_documents().run()?;
println!("Number of matching documents: {}", ct);
Number of documents: 25216

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

次の例では、nameフィールドの値に string "Sunset" が含まれるドキュメントの数をカウントします。各実行時に対応するコードを表示するには、Asynchronous タブまたは Synchronousタブを選択します。

let ct = my_coll
.count_documents(doc! { "name": doc! { "$regex": "Sunset" } })
.await?;
println!("Number of matching documents: {}", ct);
Number of matching documents: 10
let ct = my_coll
.count_documents(doc! { "name": doc! { "$regex": "Sunset" } })
.run()?;
println!("Number of matching documents: {}", ct);
Number of matching documents: 10

count_documents() メソッドの動作を変更するには、await または run() メソッドを呼び出す前に、オプション メソッドを count_documents() 呼び出しに連結します。次の表では、カウント操作をカスタマイズするために設定できるオプションについて説明しています。

オプション
説明

collation()

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

hint()

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

comment()

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

limit()

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

max_time()

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

read_concern()

操作に使用する読み取り保証 (read concern)。
タイプ: ReadConcern

skip()

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

selection_criteria()

操作に使用する読み込み設定 (read preference) とタグを指定します。
タイプ: SelectionCriteria

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

次の例では、コレクション内のドキュメントの数を見積ります。各実行時に対応するコードを表示するには、Asynchronous タブまたは Synchronousタブを選択します。

let ct = my_coll.estimated_document_count().await?;
println!("Number of documents: {}", ct);
Number of documents: 25216
let ct = my_coll.estimated_document_count().run()?;
println!("Number of documents: {}", ct);
Number of documents: 25216

オプション メソッドを estimated_document_count() 呼び出しに連結することで、estimated_document_count() メソッドの動作を変更できます。次の表では、推定カウント操作 をカスタマイズするために設定できるオプションについて説明します。

オプション
説明

max_time()

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

comment()

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

read_concern()

操作に使用する読み取り保証 (read concern)。
タイプ: ReadConcern

selection_criteria()

操作に使用する読み込み設定 (read preference) とタグを指定します。
タイプ: SelectionCriteria

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