我想获取mongodb中所有在两个特定日期之间的所有记录。 在springboot中,我使用这种聚合方式:
newAggregation(
project()
.andExpression("year(finishTimestamp)").as("year")
.andExpression("month(finishTimestamp)").as("month")
.andExpression("dayOfMonth(finishTimestamp)").as("day")
match(Criteria.where("finishTimestamp").gte(startDate).lte(endDate)),
group(fields().and("year").and("month").and("day"))
.count().as("cnt")
);
startDate
和endDate
均为java.util.Date
的类型。
在以上聚合中,mongodb完全忽略了匹配操作。
在springboot中,我使用聚合以这种方式获取数据:
AggregationResults <Map> server = mongoTemplate.aggregate(agg,
"someName", Map.class);
此聚合有什么问题?