【发布时间】:2013-09-28 21:09:31
【问题描述】:
我对实体及其时间戳感兴趣。本质上,我想要一个按时间排序的实体列表。
为此,我编写了以下函数:
(defn return-posts
"grabs all posts from Datomic"
[]
(d/q '[:find ?title ?body ?slug
:where
[?e :post/title ?title]
[?e :post/slug ?slug]
[?e :post/body ?body]] (d/db connection)))
(defn get-postid-from-slug
[slug]
(d/q '[:find ?e
:in $ ?slug
:where [?e :post/slug ?slug]] (d/db connection) slug))
(defn get-post-timestamp
"given an entid, returns the most recent timestamp"
[entid]
(->
(d/q '[:find ?ts
:in $ ?e
:where
[?e _ _ _]
[?e :db/txInstant ?ts]] (d/db connection) entid)
(sort)
(reverse)
(first)))
我觉得必须是一个植根于无知的黑客。
是否会有更精通 Datomic 惯用用法的人加入并升级我的范例?
【问题讨论】: