web-dev-qa-db-ja.com

Spring Data MongoDBリポジトリでカウント

Spring Data MongoDBリポジトリに@Queryアノテーションを付けてcountを使用するためのメカニズムはあるのでしょうか。すべての書類を入手しなくても、持っている書類をたくさん受け取りたいです。

基本的に、Javaでこれに相当するもの:

db.test.find({"type":"foo"}).count 
18
paul

私にとって、この解決策は魅力のように機能します(spring-data-mongodb 1.3.1.RELEASEを使用)、私は同じ問題のATMを持っていてこれを解決しました(私の作業中のコードからの短い抜粋):

@Query(value = "{'productDetails.productType': {$regex: ?0, $options: 'i'}, 'sourceDescriptor': ?1}", count = true)
public Long countFetchedDocumentsForCategory(String cat, String sourceDescriptor);
34
wmax

MongoRepositoryクエリテンプレートを使用してこれを行う別の方法:

public interface MyRepository extends MongoRepository<MyClass, String> {
    Long countByLastname(String lastname);
}

参照 http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.query-methods.details

40
DanJ

私は最近同じ問題を抱えていましたが、残念ながら少なくとも現在の安定バージョンでは解決策が見つかりませんでした。 Spring Data JPA 1.4M1では 可能 と思われるため、Spring Data MongoDBの次のバージョンにも含まれる可能性があります。

1