我正在使用Clojure在数据结构中做一些查询,我试图返回一个带有键的Map而不是一个Vector,如果我不试图在查询中返回一个带有": keys“关键字的Map,它工作得很好。
我尝试在:find和:键之间使用相同和不同的名称。如果我去掉下面的:keys行,它就能正常工作。
我使用org.clojure/clojure "1.10.0“和com.datomy/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/are (async.clj:56)的执行错误(ExceptionInfo)。
“参数:键在:find不是一个变量”
下面是他们的文档中的数据示例。
[:find ?artist-name ?release-name
:keys artist release
:where [?release :release/name ?release-name]
[?release :release/artists ?artist]
[?artist :artist/name ?artist-name]]发布于 2019-10-04 00:27:23
我认为您使用的是一个还不知道:keys选项的旧版本客户端。
https://stackoverflow.com/questions/58209981
复制相似问题