Я пытаюсь агрегировать запрос в базе данных mongo.
Я могу найти команду для агрегата в командной строке, а также в robomongo.
Пожалуйста, найдите запрос ниже
db.portfolio.aggregate([
{ $match: {id: "c-4fbfd8ed-8b4a-4cf6-b3e0-2f5f3200d6d4"}},
{ $project: {
medias: {$filter: {
input: '$medias',
as: 'category',
cond: {$eq: ['$$category.categoryId', "j_664e2bba-fa0e-4d31-aa26-732b92c1b872"]}
}}
}}
])
Но когда я пытался преобразовать в BSONDocument и запустить его, он выдает ошибку во время выполнения.Эквивалентный BSONDocument, который я добавил в своем коде:
val commandDoc = BSONDocument(
"aggregate" -> "portfolio", // we aggregate on collection `portfolio`
"pipeline" -> BSONArray(
BSONDocument("$match" -> BSONDocument("id" -> portfolioId)),
BSONDocument(
"$project" -> BSONDocument(
"medias" -> BSONDocument(
"$filter" -> BSONDocument(
"input" -> "$medias",
"as" -> "category",
"cond" -> BSONDocument(
"$eq" -> Json.arr("$$category.categoryId", categoryId)
)
)
)
)
)
)
)
ошибка, которая возникает при отладке кода во время выполнения:
The 'cursor' option is required, except for aggregate with the explain argument
Что мне нужно для решения этой проблемы,Я использую версию Монго 3.6.2, может ли это быть проблемой с версией, потому что, когда я пытался с Монго 3.2.7, она работала на отлично.