我在聚合管道的这个阶段有两个文件:
{
"_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中正确的等效表达式是什么?
答案 0 :(得分:4)
您应该使用projection
代替expression
,如下所示:
.project(projection("count",projection("$size", "entities" )))