2013-05-23 3 views
8

@Query注釈付きでSpringデータMongoDBリポジトリにcountを使用するメカニズムがあるのだろうか? 私はそれらのすべてを取得することなく、私が持っているドキュメントの数を受け取りたいです。SpringデータでカウントするMongoDBリポジトリ

は基本的には、Javaでこれの同等:

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

答えて

17

私の場合、このソリューションは魅力的です(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); 
+0

spring-data-mongodb:1.4.1.RELEASEは、パラメータに@Paramアノテーションを追加することも要求します。 –

1

は、私は最近、同じ問題を抱えていたし、残念ながら、少なくともではない現在の安定版との任意の解決策を見つけることができませんでした。 Spring Data JPA 1.4M1にはit is possibleがあるようですので、Spring Data MongoDBの次のバージョンにも含まれているかもしれません。

+0

まあを参照してください、lest's本当に問題が発生したかどうかを確認します。レスポンスありがとう! – paul

20

この使用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

+0

これは受け入れられる回答でなければなりません。ドキュメントを提供していただきありがとうございます。私はあまりにも長い間これをやってきました:http://docs.spring.io/spring-data/data-mongo/docs/1.4.2.RELEASE/reference/html/mongo.repositories.html – lux

関連する問題