Как выполнить запрос с объединением, получая все данные в 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]}]}]
безусловно, должен сделать свое дело.