如何通过联接查询获取 Om Next 中的所有数据?

How do I query with a join getting all the data in Om Next?

在Om接下来,当有数据如:

{:table      {:name "Disk Performance Table"
              :data [:statistics :performance]}
 :chart      {:name "Combined Graph"
              :data [:statistics :performance]}
 :statistics {:performance {:cpu-usage        [45 15 32 11 66 44]
                            :disk-activity    [11 34 66 12 99 100]
                            :network-activity [55 87 20 1 22 82]}}}

您可以通过以下方式查询:

[{:chart [{:data [:cpu-usage]}]}]

要获取图表,请加入 data 并从 performance 记录中向下挖掘 cpu-usage

{:chart {:data {:cpu-usage [45 15 32 11 66 44]}}}

如何获取整个性能记录?

另一个可能的查询是:

[{:chart [:data]}]

但它没有解析连接:

{:chart {:data [:statistics :performance]}}

没有组件,因为这仅与数据和查询有关。这是来自练习编号 2 并在此处查询:https://awkay.github.io/om-tutorial/#!/om_tutorial.D_Queries 使用 om/db->tree 到 运行 查询。

在没有看到带有查询和标识的实际组件的情况下,我无法确定。

但是,您应该可以查询 [{:chart [:data]}]。参见 om/db->tree。假设您已使用正确的查询和标识构建组件,om/db->tree 会将平面应用程序状态转换为树状结构,以便您的读取函数在调用时看到以下数据:

{:table      {:name "Disk Performance Table"
              :data {:cpu-usage        [45 15 32 11 66 44]
                     :disk-activity    [11 34 66 12 99 100]
                     :network-activity [55 87 20 1 22 82]}}
 :chart      {:name "Combined Graph"
              :data {:cpu-usage        [45 15 32 11 66 44]
                     :disk-activity    [11 34 66 12 99 100]
                     :network-activity [55 87 20 1 22 82]}}}

如果该查询不起作用,[{:chart [{:data [:cpu-usage :disk-activity :network-activity]}]}] 肯定可以解决问题。

这就是你的做法:

[{:chart [{:data [*]}]}]

这给你:

{:chart {:data {:cpu-usage        [45 15 32 11 66 44]
                :disk-activity    [11 34 66 12 99 100]
                :network-activity [55 87 20 1 22 82]}}}