0

我发现这个:如果我直接使用 mongoDB,在 mongoDB 中处理除零很有用,以解决除零问题,但我找不到使用Morphia的方法。

我需要完成的正是引用的问题所说的,但是使用 Morphia,这就是为什么我不显示更多代码示例的原因。任何人都可以给我一个提示,告诉我如何使用 morphia 聚合投影进行除法并在除数为零的情况下返回 0 结果?

4

1 回答 1

1

您可以尝试为此目的使用Projection类。

import static org.mongodb.morphia.aggregation.Projection.divide;
import static org.mongodb.morphia.aggregation.Projection.expression;
import static org.mongodb.morphia.aggregation.Projection.projection;    
...
final AggregationPipeline pipeline = datastore.createAggregation(ItemEntity.class)
                .project(projection("_id").suppress(),
                        projection("name", "name"),
                        projection("upvotes", "upvotes"),
                        projection("downvotes", "downvotes"), 
                        projection("quality", expression("$cond", expression(FilterOperator.EQUAL.val(), projection("downvotes"), 0), projection("upvotes"), divide(projection("upvotes"), projection("downvotes"))))
                )
                .sort(Sort.descending("quality"));
于 2016-07-12T22:42:45.090 回答