Ich versuche, MongoDb-Abfrage mit Aggregation Framework mit Java-Treiber zu konvertieren. Mir wurde geholfen, hier Abfrage How to apply filter for output of aggregation framework of Mongo Db? zu erstellen. HierAggregat-Abfrage konvertieren MongoDb zu BasicDbObject Java
ist die Probe Aggregatabfrage:
db.movies.aggregate(
[{
$redact: {
$cond: {
if: {$gt: [{ $avg: "$customerReviews"}, 7 ] },
then: "$$KEEP",
else: "$$PRUNE"
}
}
},
{$skip:1},
{$limit:2}
]
);
Ich begann mit:
BasicDBObject avgQuery = new BasicDBObject("$avg", "$customerReviews");
aber kann nicht herausfinden, wie man durchführen {$ gt: [{$ avg: "$ customerReviews"} , 7]}. Ich denke, es sollte so etwas wie gtQuery.put (avgQuery, neues BasicDbObject ("$ gt", 7)) aber kann natürlich nicht etwas anderes als String in put() -Funktion setzen.
Btw, Ich bin mir nicht sicher, ob $ redact nur mit BasicDbObject getan werden kann oder ich brauche etwas wie Mongo spring query where two fields are equal, die Spring Mongo verwendet. Hoffe, jemand kann mir helfen, die ganze Frage zu beantworten.