Join Datomic-没有引用的实体之间的连接
我的问题是-有没有一种方法可以连接Dataomic中的两个实体,它们在模式中没有引用,而不用编写两个嵌套迭代器(手动连接) 最后,他们给出了一个答案 他们称之为“连接”——因为底层结构是一个键值数据库——所以即使是同一实体的属性也需要“连接”在一起 然后,他们给出了具有引用的两个实体之间的连接示例(假设该引用在此处未显示的模式中定义):Join Datomic-没有引用的实体之间的连接,join,clojure,datomic,Join,Clojure,Datomic,我的问题是-有没有一种方法可以连接Dataomic中的两个实体,它们在模式中没有引用,而不用编写两个嵌套迭代器(手动连接) 最后,他们给出了一个答案 他们称之为“连接”——因为底层结构是一个键值数据库——所以即使是同一实体的属性也需要“连接”在一起 然后,他们给出了具有引用的两个实体之间的连接示例(假设该引用在此处未显示的模式中定义): 我的问题是-在模式中没有引用的情况下,是否可以进行上述查询?或者我会不得不写一个迭代器并搜索结果吗 在:where子句中多次出现的任何变量都是隐式连接的 因此,
我的问题是-在模式中没有引用的情况下,是否可以进行上述查询?或者我会不得不写一个迭代器并搜索结果吗 在:where子句中多次出现的任何变量都是隐式连接的 因此,你可以询问属于社区和邻里学校的名字
(def results (q '[:find ?name :where [_ :neighborhood/name ?name]
[_ :district/name ?name]]
(db conn)))
这就是你想要的吗?(本例中仅忽略ID)
[:find ?c_name
:where
[?c :community/name ?c_name]
[?c :community/neighborhood ?n]
[?n :neighborhood/district ?d]
[?d :district/region :region/ne]]
(def results (q '[:find ?name :where [_ :neighborhood/name ?name]
[_ :district/name ?name]]
(db conn)))