当前位置: 首页 > 知识库问答 >
问题:

相当于使用MongoDB java驱动程序的$ObjtToArray 3

淳于典
2023-03-14

我正在将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"
    }
  }
]

我已经翻译了上面使用MongoDBJava驱动程序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操作取决于dot对使用$objectToArray生成的k和v值的操作。

是否有一种等效的方法来将具有未知键名的对象映射到使用MongoDBJava驱动程序(最好是版本3)的$ectivtToArray使用的k和v格式?

共有1个答案

公孙巴英
2023-03-14

下面就可以了。

project(computed("record", eq("$objectToArray", "$record")))
 类似资料:
  • 以下查询在mongo shell中完美运行。 我想用java编程实现同样的功能。我尝试了以下方法,但没有得到任何结果。

  • 我的目标是使用聚合框架创建一个管道来对我的数据进行分组,然后将这个管道与java驱动程序一起使用。MongoDB v4.0.3 我使用MongoDB Compass创建了以下管道(减少到重要部分): 这导致以下(生成的)Java代码: 集合中$组阶段之前的数据如下所示: $组阶段应返回以下数据结构: 问题所在 Mongo Compass按预期预览了阶段的结果,但使用java驱动程序的阶段的结果非常

  • 我不能在pyqt应用程序中使用time.sleep,因为这会冻结GUI线程,所以在此期间GUI将完全冻结。我一直在寻找处理这件事的方法。 我试图使用QTimer,但似乎它们需要链接到另一个函数?比如等十秒钟,然后运行一些函数。有没有办法让它等待,然后继续当前的功能?

  • 我正试图使用IntelliJ IDE从Spark连接到老虎机数据库。有人能帮助jdbc驱动程序(。jar)文件吗?我正在寻找“com.tigergraph.jdbc.驱动程序”。 我确实找到了下面的gitHub存储库,其中包含了所有必需的信息。java文件。但是,我不知道如何在我的spark项目中使用它。https://github.com/tigergraph/ecosys/tree/maste

  • 问题内容: 美好的一天, 你们知道GBQ的任何JDBC接口或驱动程序吗? 请只使用Java-Python库已经完成。 预先感谢,祝您有美好的一天,迈克 问题答案: 有一个第三方JDBC驱动程序,可以从以下位置获得: http://code.google.com/p/starschema-bigquery- jdbc/ 它支持与原始Google BigQuery相同的SQL SELECT语法,并且不

  • 的配置在中正确 我还使用cli检查了 null Kubernetes版本(使用):1.7.3 云提供商或硬件配置**:4核16G RAM 操作系统(例如来自/etc/os-release):CentOS Linux 7(核心) 内核(例如):Linux 10-8-108-92 3.10.0-327.22.2.el7.x86_64#1 SMP Thu Jun 23 17:05:11 UTC 2016