如何编写查询以使基数的结果具有基数/许多是地图而不是数据脚本中的向量

时间:2018-03-08 17:08:35

标签: clojurescript datascript

假设datascript db具有架构:

Hello WorldCALL TRUE                                                                                                                                                              
TRUE                                                                                                                                                                              


...Program finished with exit code 0                                                                                                                                              
Press ENTER to exit console.

并插入了一些实体:

(def schema {:maker/cars {:db/cardinality :db.cardinality/many
                          :db/valueType :db.type/ref}})
(def conn (d/create-conn schema)

然后查询

{:db/id 1
 :car/name "x"}
{:db/id 2
 :car/name "y"}
{:db/id 3
 :car/name "z"}
{:db/id 4 
 :maker/name "Honda"
 :maker/cars [1 2 3]}

会得到结果:

(d/q '[:find [(pull ?e [:maker/name  {:maker/cars [:car/name]}])]
                 :where [?e :maker/name "Honda"]] @conn)

[#:maker{:name "Honda", :cars [#:car{:name "x"} #:car{:name "y"} #:car{:name "z"}]}] 是一个向量。

如何编写拉取查询以获得如下结果?

:maker/cars

试过但没有幸运......

1 个答案:

答案 0 :(得分:0)

没有办法。控制Pull API返回的数据形状的选项并不多。只需对DataScript返回的结果进行自己的后处理