使用 Datomic 返回 Map 而不是 Vector 时出错
Error returning a Map instead of a Vector using Datomic
我正在使用 Clojure 在 Datomic 中进行一些查询,如果我不尝试 return 带有键而不是 Vector 的映射,我会尝试 return 带有查询中的“:keys”关键字工作正常。
我试图在 :find 和 :keys 之间使用相同和不同的名称。
如果我删除下面的 :keys 行,它工作正常。
我正在使用 [org.clojure/clojure "1.10.0"] 和 [com.datomic/client-pro "0.8.28"]。
(def get-links
'[:find ?e ?url ?description ?createdat ?order ?postedby
:keys e url description createdat order postedby
:in $ ?filter ?skip ?skip-plus-first
:where [?e :link/url ?url]
[?e :link/description ?description]
[?e :link/createdat ?createdat]
[?e :link/postedby ?e2]
[?e :link/order ?order]
[?e2 :user/name ?postedby]
[(.contains ?url ?filter)]
[(> ?order ?skip) ]
[(<= ?order ?skip-plus-first)]])
我是这样称呼它的:
(d/q get-links db filter skip (+ first skip))
准确的错误是:
datomic.client.api.async/ares (async.clj:56).
执行错误 (ExceptionInfo)
"Argument :keys in :find is not a variable"
下面是 Datomic 示例,在他们的文档中。
[:find ?artist-name ?release-name
:keys artist release
:where [?release :release/name ?release-name]
[?release :release/artists ?artist]
[?artist :artist/name ?artist-name]]
我认为您使用的是还不知道 :keys
选项的旧版本客户端。
我正在使用 Clojure 在 Datomic 中进行一些查询,如果我不尝试 return 带有键而不是 Vector 的映射,我会尝试 return 带有查询中的“:keys”关键字工作正常。
我试图在 :find 和 :keys 之间使用相同和不同的名称。 如果我删除下面的 :keys 行,它工作正常。
我正在使用 [org.clojure/clojure "1.10.0"] 和 [com.datomic/client-pro "0.8.28"]。
(def get-links
'[:find ?e ?url ?description ?createdat ?order ?postedby
:keys e url description createdat order postedby
:in $ ?filter ?skip ?skip-plus-first
:where [?e :link/url ?url]
[?e :link/description ?description]
[?e :link/createdat ?createdat]
[?e :link/postedby ?e2]
[?e :link/order ?order]
[?e2 :user/name ?postedby]
[(.contains ?url ?filter)]
[(> ?order ?skip) ]
[(<= ?order ?skip-plus-first)]])
我是这样称呼它的:
(d/q get-links db filter skip (+ first skip))
准确的错误是: datomic.client.api.async/ares (async.clj:56).
执行错误 (ExceptionInfo)"Argument :keys in :find is not a variable"
下面是 Datomic 示例,在他们的文档中。
[:find ?artist-name ?release-name
:keys artist release
:where [?release :release/name ?release-name]
[?release :release/artists ?artist]
[?artist :artist/name ?artist-name]]
我认为您使用的是还不知道 :keys
选项的旧版本客户端。