在 Morphia 的 Mongo 聚合管道中使用运算符的正确方法是什么

What is the correct way to use operators in Mongo aggregation pipelines with Morphia

现阶段我的聚合管道中有两个文档,它们是:

{
    "_id" : "Piers Morgan", 
    "entities" : ["Sexism", "Charlotte Hawkins","Red carpet"]
}
{ 
    "_id" : "Gareth Bale", 
    "entities" : ["Sergio Busquets", "Real Madrid C.F.", "EFL Cup", "Copa del Rey"]
}

我只想return一个投影,它是数组的id和大小,使用Java中的Morphia。在 Mongo 中,可以使用:

{ $project: { count : {$size : "$entities"} } }

在Morphia我尝试过:

.project(projection("count", 
    Projection.expression("$size", "entities")));

which returns java.lang.ClassCastException: java.lang.String 无法转换为 com.mongodb.DBObject

Morphia 中正确的等效表达式是什么?

您应该像这样使用 projection 而不是 expression

.project(projection("count",projection("$size", "entities" )))