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

时间:2017-07-20 11:59:05

标签: java mongodb aggregation-framework 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"]
}

我希望只使用Java中的Morphia返回一个投影,即数组的id和大小。在Mongo中,这可以使用:

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

在Morphia,我尝试过:

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

返回java.lang.ClassCastException:java.lang.String无法强制转换为com.mongodb.DBObject

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

1 个答案:

答案 0 :(得分:4)

您应该使用projection代替expression,如下所示:

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