java - Morphia 聚合查询以获取列表的大小

标签 java database mongodb aggregation-framework morphia

我正在尝试计算集合中每个文档的列表中的元素数量,类似于下面的示例。 (https://docs.mongodb.com/manual/reference/operator/aggregation/size/#exp._S_size)

db.inventory.aggregate(
   [
      {
         $project: {
            item: 1,
            numberOfColors: { $size: "$colors" }
         }
      }
   ]
)

此查询将返回每个文档中列表“颜色”的大小。

等效的吗啡查询如下所示:

pipeline =  ds.createAggregation(Abc.class)
                .match(query)
                .project(Projection.projection("count", 
                 Projection.expression("$size","colors")));

执行上述错误:java.lang.String无法转换为com.mongodb.DBObject
我无法获得等效的吗啡查询来实现相同的目的。
任何在这方面的帮助将不胜感激。

最佳答案

更改以下代码行

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

Projection.expression("count",new BasicDBObject("$size","$colors"))) 

关于java - Morphia 聚合查询以获取列表的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704786/

相关文章:

java - 设置Alarm时Intent.getSerializedExtra(obj)在BroadcastReceiver的onReceive中返回null

java - 在一台机器上运行服务器和客户端(netbeans 8.1)

java - 共享常量池?

sql - 存储过程中准备好的SQL语句是否会使性能更好?

mongodb - 无法从 shell 访问集合 - SyntaxError : missing ; before statement (shell):1

Spring Data MongoDB - 嵌入文档作为其他文档中的引用

javascript - 使用node js和mongodb时出现多个连接错误

单例模式下的Java同步

ios - 我可以使用什么iphone sdk API来查询iOS单词词典?

php - 尝试在一百万行表的列中对相似的文本行进行分组 - 对非 MySQL 方法开放