Я пытаюсь преобразовать запрос MongoDb с использованием структуры агрегации с помощью Java-драйвера. Мне помогли создать запрос здесь 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, новый BasicDbObject («$ gt», 7)), но, очевидно, не может помещать что-то другое, кроме String в функцию put().
Btw, я не уверен, что $ redact можно сделать только с использованием BasicDbObject или мне нужно что-то вроде Mongo spring query where two fields are equal, которое использует Spring Mongo. Надеюсь, кто-то может помочь мне пройти весь запрос.