是否有人知道如何使用spring mongo投影实现此声明:
timed: {
$divide: [{ $subtract: [ new Date(), "$created" ] }, 7200000]
}
这样的事情对我不起作用:
ArithmeticOperators.Subtract updated = valueOf("new Date()").subtract("created");
因为valueOf需要字段引用或AggregationExpression
答案 0 :(得分:1)
你可以尝试下面的舞台。 shell查询中的new Date()
是javascript日期函数。您必须使用BasicDBObject
将该表达式包装在AggregationExpression中。
ArithmeticOperators.Divide updated = ArithmeticOperators.Divide.valueOf(aggregationOperationContext -> new BasicDBObject("$subtract", Arrays.asList(new Date(), "$created"))).divideBy(7200000);
AggregationOperation project = Aggregation.project().and(updated).as("timed");
Aggregation agg = newAggregation(project);
我无法找到传递类似两个日期参数的方法
valueOf("created").subtract(new Date())