Anda tidak jauh dari solusi:
Fungsi agregat membutuhkan:.aggregate(List<DBObject>)
Tetapi JSON.parse yang ingin Anda gunakan memungkinkan Anda mengetik ke dalamnya, jika Anda memiliki daftar dalam kueri Anda, jadi tidak ada Masalah
String query="[....}";
List<DBObject> q= (List<DBObject>)JSON.parse(query);
Iterable<DBObject> result=new MongoClient().getDatabase("db").getCollection("coll").aggregate(q).results();`
Hasilnya dapat diulang.