【发布时间】:2017-07-10 12:17:05
【问题描述】:
我正在尝试使用 Java 驱动程序使用聚合框架转换 MongoDb 查询。我被帮助在这里创建查询How to apply filter for output of aggregation framework of Mongo Db?。
这里是示例聚合查询:
db.movies.aggregate(
[{
$redact: {
$cond: {
if: {$gt: [{ $avg: "$customerReviews"}, 7 ] },
then: "$$KEEP",
else: "$$PRUNE"
}
}
},
{$skip:1},
{$limit:2}
]
);
我开始:
BasicDBObject avgQuery = new BasicDBObject("$avg", "$customerReviews");
但无法弄清楚如何执行 {$gt: [{ $avg: "$customerReviews"}, 7 ] }。我认为它应该类似于 gtQuery.put(avgQuery, new BasicDbObject("$gt",7)) 但显然不能在 put() 函数中放入 String 以外的东西。
顺便说一句,我不确定 $redact 是否只能使用 BasicDbObject 来完成,或者我需要像 Mongo spring query where two fields are equal 这样使用 Spring Mongo 的东西。希望有人可以帮助我完成整个查询。
【问题讨论】:
标签: mongodb aggregation-framework mongo-java-driver