如何使用springboot中的聚合在mongodb中的两个日期之间获取记录

时间:2018-10-24 11:57:05

标签: mongodb spring-boot mongodb-query aggregation-framework aggregation

我想获取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")
);

startDateendDate均为java.util.Date的类型。 在以上聚合中,mongodb完全忽略了匹配操作。

在springboot中,我使用聚合以这种方式获取数据:

AggregationResults <Map> server = mongoTemplate.aggregate(agg,
    "someName", Map.class);

此聚合有什么问题?

0 个答案:

没有答案