Mongodb 基于文档查询的等价BSON

Mongodb 基于文档查询的等价BSON,mongodb,scala,play-reactivemongo,Mongodb,Scala,Play Reactivemongo,我正在mongo数据库中尝试聚合查询 我可以在robomongo的命令行中找到聚合命令 请在下面查找查询 db.portfolio.aggregate([ { $match: {id: "c-4fbfd8ed-8b4a-4cf6-b3e0-2f5f3200d6d4"}}, { $project: { medias: {$filter: { input: '$medias', as: 'category',

我正在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
我需要什么来解决这个问题。
我使用的是mongo 3.6.2版,是不是版本可能会有问题,因为当我尝试使用mongo 3.2.7时,它工作得非常好。

AFIAK。您可以像JSON和convert一样执行“一切”,或者使用Bson类型。从技术上讲,它只是Java类型,或者实际上是任何字符串列表。通过更改为BSON数组进行检查,但它仍然会引发相同的错误“cursor”选项是必需的,除了使用explain参数进行聚合),Success((code,BSONInteger(9)),Success((codeName,BSONString(failedtopasse)))对不起,我没有看问题的那一部分。不要使用
命令
对集合使用
aggregate()
方法。您应该首先查看文档