¿Cómo realizar una consulta mongo agregada usando json en una cadena?

Tengo una cadena con una consulta json agregada (cargada de un archivo) para mongodb. En robomongo, funciona bien. Entonces en robomongo, tengo:

db.getCollection('Odds').aggregate(
[
{
     "$lookup": {
        "from": "...",
        "localField": "...",
        "foreignField": "...",
        "as": "..."
     }
},
{    "$unwind": "$..." },
{
     "$redact": {
         ... etc ...
     }
}
]
)

El archivo json es el mismo pero con la primera y la última línea eliminada para que sea json. Cuando cargo esto en Java, se analiza correctamente. El resultado del análisis pasa a ser un "BasicDBList":

String query = "..."; // read from file
BasicDBList q = (BasicDBList) JSON.parse(query);

Ahora, estoy tratando de pasar esto a la función agregada, pero no funciona:

new MongoClient().getDatabase("db").getCollection("coll").aggregate(q);

Esa línea da:

The method aggregate(List<? extends Bson>) in the type MongoCollection<Document> is not applicable for the arguments (BasicDBList)

¿Hay alguna forma de convertir los tipos? ¿Debo hacerlo de otra manera?

Respuestas a la pregunta(1)

Su respuesta a la pregunta