आप समाधान से दूर नहीं हैं:
समग्र कार्य लेता है:.aggregate(List<DBObject>)
लेकिन आप जिस JSON.parse का उपयोग करना चाहते हैं, वह आपको इसमें टाइपकास्ट करने देता है, यदि आपकी क्वेरी में कोई सूची है, तो कोई समस्या नहीं है
String query="[....}";
List<DBObject> q= (List<DBObject>)JSON.parse(query);
Iterable<DBObject> result=new MongoClient().getDatabase("db").getCollection("coll").aggregate(q).results();`
परिणामों को पुनरावृत्त नहीं किया जा सकता है।