Java 如何获得Mongo标准中两个日期值之间的差异?
如何获得Mongo标准中两个日期值之间的差值,返回值必须是两个日期的差值(即2015年1月10日第一个日期和2015年1月20日第二个日期),我需要值为10?有谁能帮助我如何使用spring framework critieria在java中实现这一点吗?在本文中,您可以使用Java 如何获得Mongo标准中两个日期值之间的差异?,java,spring,mongodb,spring-mvc,criteria,Java,Spring,Mongodb,Spring Mvc,Criteria,如何获得Mongo标准中两个日期值之间的差值,返回值必须是两个日期的差值(即2015年1月10日第一个日期和2015年1月20日第二个日期),我需要值为10?有谁能帮助我如何使用spring framework critieria在java中实现这一点吗?在本文中,您可以使用和expression获得两个日期值之间的差异: .andExpression("endDateTime - startDateTime").as("duration") 例如(未经测试): 我建议您使用算术运算,而不是在
和expression
获得两个日期值之间的差异:
.andExpression("endDateTime - startDateTime").as("duration")
例如(未经测试):
我建议您使用算术运算,而不是在投影管道内使用减法运算
ProjectionOperation projectionOperation=Aggregation.project().and(Subtract.valueOf(Date.from(Instant.now())).subtract("fieldname"));
Substract.valueOf
将数字
或字符串
作为参数,而不是日期
。这不起作用arithmetricoperators.Subtract.valueOf
接受String
,AggregationExpression
或Number
。
db.collection.aggregate( {$match:{ your-match } },
{ $group : {
_id : "$userId",
duration : { $subtract:["$endDateTime", "$startDateTime"]}},
} } );
ProjectionOperation projectionOperation=Aggregation.project().and(Subtract.valueOf(Date.from(Instant.now())).subtract("fieldname"));