Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Mongodb java驱动程序3相当于$objectToArray_Java_Mongodb_Mongodb Java - Fatal编程技术网

使用Mongodb java驱动程序3相当于$objectToArray

使用Mongodb java驱动程序3相当于$objectToArray,java,mongodb,mongodb-java,Java,Mongodb,Mongodb Java,我正在将Mongodb查询从Javascript移动到Java。对象格式如下: { "record": { "unknownName1": { "count": 5, "domain": "domain1" }, { ... }, { "unknownNameN": { "count": 3, "domain": "domainN" } } } Javascript查询包含以下部分: [

我正在将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驱动程序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"))
);
List query=Arrays.asList(
项目(包括(“记录”)),
展开(“$record”),
组(计算的(“设备”和“$record.k”),
总和(“计数”,“记录v.count美元”),
最小值(“域”,“$record.v.domain”))
);
我遇到的问题是,我似乎无法使用Mongodb Java驱动程序找到与$objectToArray等价的对象,后续的sum和min操作依赖于点操作使用$objectToArray生成的k和v值

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

project(computed("record", eq("$objectToArray", "$record")))