2015-06-15 26 views

回答

2

如果你需要一个查询中工作,那么聚集问题的汇总最好用子查询解决(嵌套调用内查询查询)。看到这个answer on the Datomic mailing list,其中包括了类似的(不相同)上聚集的结果与mbrainz查询:

(d/q '[:find ?track ?count 
     :where [(datomic.api/q '[:find ?track (count ?artist) 
       :where [?track :track/artists ?artist]] $) [[?track ?count]]] 
     [(> ?count 1)]] 
    (d/db conn)) 

对于你的情况(假设工作停留在Clojure的),申请将更快,更简单。只需要做一些简单的事情(例如,获取与最大值相关联的东西)的子查询往往会更有意义,如果您使用REST API或其他客户端环绕Datomic,而您没有获得与同侪图书馆正在进行中。

相关问题