Spring data 投影中的Spring数据MongoDB条件

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操作符,但我不知道它在代码中

在使用Spring数据进行聚合期间,如何在投影阶段添加条件

例如,我想添加将由公式
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");

我想知道,这是否如此困难,以至于还没有人回答。我也需要这样做