Предположим, у меня есть объект author
со многими связанными объектами book
. Какой запрос найти автора с наибольшим количеством книг?
Datomic-запрос для максимального агрегированного значения
Ответы (1)
ХОРОШО. Поскольку я нашел ответ сам - я публикую его здесь на случай, если кто-то будет искать:
Решение состоит в том, чтобы построить два datomic-запроса, передающих вывод первого во второй.
(->>
(d/q '[:find (count ?b) ?a :where [?a :author/books ?b]] db)
(d/q '[:find (max ?count) ?a :in $ [?count ?a]] db))
Насколько я понял, это обычный способ работы с менее тривиальными запросами в datomic - разделить его на несколько подзапросов и объединить их в цепочку, чтобы БД выполняла свою работу.
person
Boffin
schedule
27.02.2015