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

时间:2016-01-17 17:17:57

标签: clojurescript om 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并从cpu-usage记录中挖掘performance

{: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->树来运行查询。

2 个答案:

答案 0 :(得分:1)

您就是这样做的:

[{: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]}}}

答案 1 :(得分:0)

如果没有查看带有查询和标识的实际组件,我无法确定。

但是,您应该能够查询[{: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]}]}]肯定应该可以解决问题。