Como executar uma consulta mongo agregada usando json em uma String?

Eu tenho uma seqüência de caracteres com uma consulta json agregada (carregada de um arquivo) para mongodb. No robomongo, funciona bem. Então, no robomongo, eu tenho:

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

O arquivo json é exatamente o mesmo, mas com a primeira e a última linha removidas para que seja json. Quando eu carrego isso em Java, ele analisa corretamente. O resultado da análise passa a ser um "BasicDBList":

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

Agora, estou tentando passar isso para a função agregada, mas não funciona:

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

Essa linha fornece:

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

Existe uma maneira de converter os tipos? Devo fazê-lo de outra maneira?

questionAnswers(1)

yourAnswerToTheQuestion