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

标签 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 中正确的等效表达式是什么?

最佳答案

您应该使用投影而不是表达式,如下所示:

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

关于java - 在带有 Morphia 的 Mongo 聚合管道中使用运算符的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214057/

相关文章:

java - 使用kafka lib反序列化PRIMITIVE AVRO KEY

mongodb - 获取数组 mongodb 中的特定字段并作为数组返回

mongodb - 在 Heroku 上使用 Play 框架设置 MongoLab 或 MongoHQ

mongodb - 在 mongo 聚合中包含当前日期

mongodb - 在mongodb中计算百分比

java - OpenGL ES Android 中的深度缓冲区问题

java - 嵌入式 Jetty 8.x/Spring MVC/WebApplicationInitializer

java - 我如何转换 xsd : pattern in java regex

mongodb - MongoDB 应该在 Ubuntu 15.10 上从哪个位置运行?

node.js - MongoDB 聚合嵌套数据