首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Datomic返回Map而不是Vector时出错

使用Datomic返回Map而不是Vector时出错
EN

Stack Overflow用户
提问于 2019-10-03 06:11:06
回答 1查看 141关注 0票数 2

我正在使用Clojure在数据结构中做一些查询,我试图返回一个带有键的Map而不是一个Vector,如果我不试图在查询中返回一个带有": keys“关键字的Map,它工作得很好。

我尝试在:find和:键之间使用相同和不同的名称。如果我去掉下面的:keys行,它就能正常工作。

我使用org.clojure/clojure "1.10.0“和com.datomy/client-pro "0.8.28”。

代码语言:javascript
复制
(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)]])

我是这样称呼它的:

代码语言:javascript
复制
(d/q get-links db filter skip (+ first skip))

确切的错误是:datomic.client.api.async/are (async.clj:56)的执行错误(ExceptionInfo)。

“参数:键在:find不是一个变量”

下面是他们的文档中的数据示例。

代码语言:javascript
复制
[:find ?artist-name ?release-name
 :keys artist release
 :where [?release :release/name ?release-name]
 [?release :release/artists ?artist]
 [?artist :artist/name ?artist-name]]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-04 00:27:23

我认为您使用的是一个还不知道:keys选项的旧版本客户端。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58209981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档