Как выполнить агрегированный монго-запрос, используя json в строке?

У меня есть строка с агрегированным JSON-запросом (загруженным из файла) для mongodb. В робомонго это работает хорошо. Так что в робомонго у меня есть:

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

Файл json точно такой же, но с удаленной первой и последней строкой, так что это json. Когда я загружаю это в Java, он анализирует правильно. Результатом синтаксического анализа является «BasicDBList»:

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

Теперь я пытаюсь передать это статистической функции, но она не работает:

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

Эта строка дает:

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

Есть ли способ конвертировать типы? Должен ли я сделать это по-другому?

Ответы на вопрос(1)

Ваш ответ на вопрос