我正在尝试计算集合中每个文档的列表中的元素数量,类似于下面的示例。 (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/