我尝试使用$subtract
运算符使用以下代码行将两个字段之间的差异投影为单独的第三个字段:
pipeline.add(Aggregation.project("createdTime","modResult").andExpression("createdTime").minus("modResult").as("bucketedTime"));
但是,当我尝试执行聚合时,我得到以下异常:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: can't serialize class org.springframework.data.mongodb.core.aggregation.Fields$AggregationField
我在这里做错了什么?我注意到如果我提供整数而不是字段名称,则没有问题。谢谢你的帮助。
答案 0 :(得分:0)
根据我的问题here,我发现我应该使用floor()
代替and()
。后者试图将该参数解释为表达式,例如andExpression()
作为执行field1 + field2
的更方便的方式。