【发布时间】:2017-04-03 11:49:32
【问题描述】:
我正在尝试运行 MongoDB 聚合以使用 Java 驱动程序在单个集合中检索不同的嵌套文档。
如何在 Java Accumulators.addToSet 文档输出中添加多个字段?
例如,在 MongoDB Shell 中,这是可行的:
db.systems.aggregate([{$unwind:"$planets"},{$group:{_id:"$surfaceType", distinct:{$addToSet:{radius:"$planets.radius", surfaceType:"$planets.surfaceType"}}}}])
输出:
planets:[{ "radius" : 10.0,"surfaceType" : "water"},{"radius":"100.0","surfaceType" : "rock"}, ...]
但在 Java 中这是行不通的:
collection.aggregate(Arrays.asList(Aggregates.group("$surfaceType",Accumulators.addToSet("planets", {radius:"$planets.radius", surface:"$planets.surfaceType", ...}))));
只是不太明白 addToSet 中字符串表达式所需的语法。
谢谢
【问题讨论】:
标签: java mongodb mongodb-query aggregation-framework