集合为空时Spring数据mongodb计数错误

集合为空时Spring数据mongodb计数错误,mongodb,count,spring-data-mongodb,Mongodb,Count,Spring Data Mongodb,这两个问题之间有什么区别 当集合上存在或不存在值时,此查询工作正常 @Query(value = "{'request.req_number':?0, 'product.prod_number':?1}", count = true) int myMethod(String requestNumber, String productNumber){... 但当集合为空时,这将导致空指针 @Aggregation(pipeline = {"{'$match':{'request.req_

这两个问题之间有什么区别

当集合上存在或不存在值时,此查询工作正常

@Query(value = "{'request.req_number':?0, 'product.prod_number':?1}", count = true)
int myMethod(String requestNumber, String productNumber){...
但当集合为空时,这将导致空指针

    @Aggregation(pipeline = {"{'$match':{'request.req_number':?0, 'product.prod_number':?1} }","{'$count':'total'}"}) 
int myMethod(String requestNumber, String productNumber){...
java.lang.NullPointerException:null 在org.springframework.data.mongodb.repository.query.AggregationUtils.extractSimpleTypeResult(AggregationUtils.java:192)~[spring-data-mongodb-2.2.1.RELEASE.jar:2.2.1.RELEASE]
在org.springframework.data.mongodb.repository.query.StringBasedAggregation.doExecute(StringBasedAggregation.java:114)~[spring-data-mongodb-2.2.1.RELEASE.jar:2.2.1.RELEASE]

聚合返回“对象”,您应该使用类似这样的内容:

@Data
@AllArgsConstructor
class Count {
    Long total;
}
...
@Aggregation(pipeline = {"{'$match':{'request.req_number':?0, 'product.prod_number':?1} }","{'$count':'total'}"}) 
Count myMethod(String requestNumber, String productNumber){...