我試圖使用Java驅動程序使用聚合框架來轉換MongoDb查詢。我在這裏幫助創建了查詢How to apply filter for output of aggregation framework of Mongo Db?。將聚合查詢MongoDb轉換爲BasicDbObject Java
下面是示例彙總查詢:
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:[{$平均: 「$ customerReviews」} ,7]}。我認爲它應該像gtQuery.put(avgQuery,new BasicDbObject(「$ gt」,7)),但顯然不能在put()函數中放入String以外的東西。
順便說一句,我不確定是否只能使用BasicDbObject完成$ redact,或者我需要類似使用Spring Mongo的Mongo spring query where two fields are equal之類的東西。希望有人能幫助我完成整個查詢。