猿问

使用 Mongodb java driver 3 的 $objectToArray 等价物

我正在将 Mongodb 查询从 Javascript 移动到 Java。对象格式如下:


{

  "record": {

    "unknownName1": {

      "count": 5,

      "domain": "domain1"

    }, {

    ...

    }, {

    "unknownNameN": {

      "count": 3,

      "domain": "domainN"

    }

  }

}

Javascript 查询具有以下部分:


[

  { 

    $project: {

      record: { 

        $objectToArray: "$record" 

      }

    }

  }, {

    $unwind: { "$record"

  }, {

    $group: {

      device: "$record.k"

    }, 

    count: {

      $sum: "$record.v.count"

    },

    domain: {

      $min: "$record.v.domain"

    }

  }

]

我已将上述内容翻译为使用 Mongodb Java Driver 3 api,并具有以下内容:


List<Bson> query = Arrays.asList(

    project(include("record")),

    unwind("$record"),

    group(computed("device", "$record.k"),

        sum("count", "$record.v.count"),

        min("domain", "$record.v.domain"))

);

我遇到的问题是我似乎无法使用 Mongodb Java 驱动程序找到与 $objectToArray 等效的对象,并且随后的 sum 和 min 操作取决于对使用 $objectToArray 生成的 k 和 v 值进行操作的点。


是否有一种等效的方法可以使用 Mongodb Java 驱动程序将具有未知键名的对象映射到 $objectToArray 使用的 k 和 v 格式,最好是版本 3+?


慕斯709654
浏览 183回答 1
1回答

qq_遁去的一_1

下面会做。project(computed("record",&nbsp;eq("$objectToArray",&nbsp;"$record")))
随时随地看视频慕课网APP

相关分类

Java
我要回答