从Sping Boot 2.2.6.RELEASE升级到2.4后,下面的Map不起作用,所有Map值都返回null。我找不到任何描述聚合或Map更新的mongo文档。但是rawResults包含了所需的数据。我尝试过更改mongo版本,Spring boot版本升级。
相同代码在 Spring Boot 2.2.6.RELEASE版本中正常工作。
final Aggregation agg = newAggregation(match(Criteria.where("id.cid").is(cId)),
group("sId.assignmentId", "status").count().as("total"),
sort(Sort.Direction.DESC, "sId.assignmentId", "status"));
final AggregationResults<StatusSummeryDTO> groupResults = mongoTemplate.aggregate(agg,
Submission.class, StatusSummeryDTO.class);
return groupResults.getMappedResults();
1条答案
按热度按时间zf9nrax11#
在结果DTO类中MongoDB驱动程序版本从3.x更改为4.x后,我们需要使用
@Field
注解指定确切的字段值。与3.x不同,它不会自动Map,这导致了上述问题。由于从3.x迁移到4.x时聚合中有一些突破性的变化,我认为这可能是问题所在。为了更好,我已经使用如下新类更改了代码,使其与4.x兼容。