24

我想知道在带有注释count的 Spring Data MongoDB 存储库中是否有任何机制可以使用?@Query我很想收到我所拥有的文件数量,而不必获得所有文件。

基本上,这在 Java 中相当于:

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

3 回答 3

66

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

于 2015-09-30T19:29:30.633 回答
51

对我来说,这个解决方案就像一个魅力(使用 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);
于 2013-11-27T14:27:56.430 回答
1

我最近遇到了同样的问题,不幸的是没有找到任何解决方案,至少当前稳定版本没有。似乎在 Spring Data JPA 1.4M1 中是可能的,所以它可能也会包含在 Spring Data MongoDB 的下一个版本中。

于 2013-05-27T18:45:59.860 回答