Как выполнить запрос с объединением, получая все данные в Om Next?

В Om Next при наличии таких данных как:

{: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/, который использует дерево ом /db-> для выполнения запросов.

2 ответа

Решение

Вот как вы это делаете:

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

Не видя реальных компонентов с запросами и идентификаторами, я не могу быть уверен.

Тем не менее, вы должны иметь возможность запрашивать [{: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]}]}] безусловно, должен сделать свое дело.

Другие вопросы по тегам