簡體   English   中英

使用Mongodb Java驅動程序3等效於$ objectToArray

[英]Equivalent of $objectToArray using Mongodb java driver 3

我正在將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驅動程序(最好是3+版本)將具有未知鍵名的對象映射為$ objectToArray所使用的k和v格式?

下面會做。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM