ドキュメントの数を数える
テンプレート API は、指定された条件に一致するドキュメントの数をカウントするためのさまざまなメソッドを提供します。そのうちの 1 つを以下に概説します。
template.query(Person.class)
.matching(query(where("firstname").is("luke")))
.count();
SpringData MongoDB の 3.x より前のバージョンでは、カウント操作で MongoDB の内部収集統計が使用されました。MongoDB トランザクションの導入により、集計ベースのカウント手法が必要なトランザクション中の潜在的な変更が統計に正しく反映されなくなるため、これは不可能になりました。バージョン 2.x では、MongoOperations.count()
は、進行中のトランザクションがない場合は収集統計を使用し、進行中のトランザクションがある場合は集計バリアントを使用します。
Spring Data MongoDB 3.x 以降、count
操作では、フィルター条件の存在に関係なく、MongoDB countDocuments
を介した集計ベースのカウントアプローチが使用されます。アプリケーションが収集統計の処理に関する制限を許容できる場合は、MongoOperations.estimatedCount()
が代替手段を提供します。
|
MongoDB のネイティブ 指定された
|