Ich interessiere mich für Entitäten und ihre Zeitstempel. Im Wesentlichen möchte ich eine zeitlich sortierte Liste von Entitäten.Letzte Entität von Datomic abrufen
Zu diesem Zweck habe ich die folgenden Funktionen zusammen:
(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)))
Was ich fühle mich muss ein Hack in Unkenntnis verwurzelt sein.
Würde jemand, der besser mit der idiomatischen Datomic-Verwendung vertraut ist, meine Paradigmen verbessern und aufrüsten?
Es ist erwähnenswert, dass, AFAIK, gibt Ihnen das den aktuellen Wert von: post/title wurde für die Entität geltend gemacht und nicht, wenn die Entität das letzte Thema einer Transaktion war. – spieden