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

ドキュメントをカウント

Collectionインスタンスで次のいずれかのメソッドを呼び出すと、コレクション内のドキュメント数をカウントできます。

  • count_documents() :クエリフィルターに一致するドキュメントの数をカウントします。クエリフィルターの作成の詳細については、「クエリの指定」ガイドを参照してください。

  • Estimated_document_count() :コレクションメタデータを使用して、コレクション内のドキュメントの合計数を推定します。

各メソッドはカウントをu64インスタンスとして返します。

注意

count_documents()メソッドにフィルターを渡さない場合、MongoDB はコレクション内のドキュメントの総数をカウントします。

この例では、 sample_restaurantsデータベースのrestaurantsコレクション内のドキュメントをカウントします。

次のコードでは、まずestimated_document_count()メソッドを使用して、コレクション内のドキュメントの合計数をカウントします。 次に、この例ではcount_documents()メソッドを使用して、クエリフィルターに一致するドキュメントの数をカウントします。 フィルターは、 nameフィールドの値に string "Sunset"が含まれるドキュメントと一致します。

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

use std::env;
use mongodb::{ bson::doc, Client, Collection };
use bson::Document;
#[tokio::main]
async fn main() -> mongodb::error::Result<()> {
let uri = "<connection string>";
let client = Client::with_uri_str(uri).await?;
let my_coll: Collection<Document> = client
.database("sample_restaurants")
.collection("restaurants");
let ct = my_coll.estimated_document_count(None).await?;
println!("Number of documents: {}", ct);
let ct = my_coll.count_documents(doc! { "name": doc! { "$regex": "Sunset" } }, None).await?;
println!("Number of matching documents: {}", ct);
Ok(())
}
// Your values might differ
Number of documents: 25216
Number of matching documents: 10
use std::env;
use mongodb::{
bson::{ Document, doc },
sync::{ Client, Collection }
};
fn main() -> mongodb::error::Result<()> {
let uri = "<connection string>";
let client = Client::with_uri_str(uri)?;
let my_coll: Collection<Document> = client
.database("sample_restaurants")
.collection("restaurants");
let ct = my_coll.estimated_document_count(None)?;
println!("Number of documents: {}", ct);
let ct = my_coll.count_documents(doc! { "name": doc! { "$regex": "Sunset" } }, None)?;
println!("Number of matching documents: {}", ct);
Ok(())
}
// Your values might differ
Number of documents: 25216
Number of matching documents: 10