我正在使用Clojure在Datomic中进行一些查询,如果我不尝试在查询中返回带有“:keys”关键字的Map,则会尝试返回包含键而不是Vector的Map。工作正常。
我试图在:find和:keys之间使用相同且不同的名称。 如果我在下面删除:keys行,它会正常工作。
我正在将[org.clojure / clojure“ 1.10.0”]与[com.datomic / client-pro“ 0.8.28”]结合使用。
LEFT
这是我的称呼方式:
(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)]])
确切的错误是: 在datomic.client.api.async / ares(async.clj:56)处执行错误(ExceptionInfo)。
“:find中的参数:key不是变量”
下面是他们文档中的Datomic示例。
(d/q get-links db filter skip (+ first skip))
答案 0 :(得分:2)
我认为您使用的是客户端的旧版本,尚不知道:keys
选项。