【发布时间】:2019-06-19 23:05:52
【问题描述】:
我有一个 Mongo 数据库,并将日期存储为字符串。每个文档我都有一个名为“creationdate”的字段和一个名为“completiondate”的字段。日期格式为“YYYY-MM-dd”(例如“2011-12-18”)。即使我可以执行简单的聚合,例如greaterThan、greaterThanEqual,我也找不到日期差异,我必须找到它来计算完成日期和创建日期之间的平均天数差异。
如果可能的话,我必须使用 MongoTemplate 在 spring-boot 上编写上述查询。
我正在尝试类似的方法,但它不起作用。
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(Criteria.where("creationdate").gte(date1).lte(date2).andOperator(Criteria.where("completiondate").ne(""))),
Aggregation.project("servicerequesttype").and(DateOperators.DateFromString.fromStringOf("completiondate").withFormat("%Y-%m-%d")).minus(DateOperators.DateFromString.fromStringOf("creationdate").withFormat("%Y-%m-%d")).as("diff"),
Aggregation.group("servicerequesttype").avg("diff").as("average")
);
date1, date2 被赋予类似“2011-01-01”的字符串
【问题讨论】:
标签: mongodb spring-boot aggregation mongotemplate