Du er ikke langt fra løsningen:
Den samlede funktion tager:.aggregate(List<DBObject>)
Men den JSON.parse, du vil bruge, lader dig skrive ind i den, hvis du har en liste i din forespørgsel, så intet problem
String query="[....}";
List<DBObject> q= (List<DBObject>)JSON.parse(query);
Iterable<DBObject> result=new MongoClient().getDatabase("db").getCollection("coll").aggregate(q).results();`
Resultaterne kan derefter gentages.