Spring data 投影中的Spring数据MongoDB条件
在使用Spring数据进行聚合期间,如何在投影阶段添加条件 例如,我想添加将由公式Spring data 投影中的Spring数据MongoDB条件,spring-data,spring-data-mongodb,Spring Data,Spring Data Mongodb,在使用Spring数据进行聚合期间,如何在投影阶段添加条件 例如,我想添加将由公式field1/field2计算的新字段。从代码方面看,它看起来像: ProjectionOperation projectionOperation = project("field1", "field2").andExpression("field1 / field2").as("field3"); 但是如果field2等于0,我将得到一个错误。所以为了避免这种情况,建议使用$cond操作符,但我不知道它在代码中
field1/field2
计算的新字段
。从代码方面看,它看起来像:
ProjectionOperation projectionOperation = project("field1", "field2").andExpression("field1 / field2").as("field3");
但是如果field2
等于0
,我将得到一个错误。所以为了避免这种情况,建议使用$cond
操作符,但我不知道它在代码中应该是什么样子。有人有什么想法吗
注意。表达式field2!=0 ? 1:0不起作用(即使“SpEL”允许这种语法)。我也遇到了同样的问题。
!= 似乎不受支持,但是您可以在SPeL中使用“ifNull”或“cond”
请看这里:
这里有更多的例子:
虽然有点晚了,但对于这个问题的未来观众来说,下面的代码对我很有用。当field2为0时,它返回0作为field3的值
ProjectionOperation projectionOperation = Aggregation.project("field1, field2")
.and(AggregationSpELExpression.expressionOf("cond(field2 == 0, 0, field1/field2)"))
.as("field3");
我想知道,这是否如此困难,以至于还没有人回答。我也需要这样做