2016-06-29 7 views
0

Datomicのドキュメントでは、再帰的にいくつかの属性を選択する方法を示しています。 [:person/firstName :person/lastName {:person/friends 6}]n度サブグラフのためにDatomicをどのように照会すればよいですか?

をしかし、私は(私は、クエリ時にそれらを知らない)すべての属性を引き出したいです。

[* {:person/friends 6}]再帰しません...再帰したい関係を除外するワイルドカードはありますか?プルANDワイルドカードを再帰的に指定する方法はありますか?

また、このクエリを構成するためのより良い方法がありますか?

答えて

0

ティモシー、

あなたが探している行動のための["*" {:person/friends 6}]を使用することができるはずです。

Day of Datomic pull_recursion.cljからの例を使用する:

(d/pull (d/db conn) '[:person/name {:person/friend 2}] anne-id) 
;; {:person/name "anne", :person/friend [{:person/name "bob", :person/friend [{:person/name "anne"} {:person/name "lucille"}]} {:person/name "james", :person/friend [{:person/name "anne"} {:person/name "lucille"}]}]} 

(d/pull (d/db conn) '["*" {:person/friend 2}] anne-id) 
;; {":db/id" 17592186045418, ":person/name" "anne", ":person/friend" [{":db/id" 17592186045419} {":db/id" 17592186045420}], :person/friend [{":db/id" 17592186045419, ":person/name" "bob", ":person/friend" [{":db/id" 17592186045418} {":db/id" 17592186045421}], :person/friend [{":db/id" 17592186045418, ":person/name" "anne", ":person/friend" [{":db/id" 17592186045419} {":db/id" 17592186045420}], :person/friend [{":db/id" 17592186045419} {":db/id" 17592186045420}]} {":db/id" 17592186045421, ":person/name" "lucille", ":person/friend" [{":db/id" 17592186045419}], :person/friend [{":db/id" 17592186045419}]}]} {":db/id" 17592186045420, ":person/name" "james", ":person/friend" [{":db/id" 17592186045418} {":db/id" 17592186045421}], :person/friend [{":db/id" 17592186045418, ":person/name" "anne", ":person/friend" [{":db/id" 17592186045419} {":db/id" 17592186045420}], :person/friend [{":db/id" 17592186045419} {":db/id" 17592186045420}]} {":db/id" 17592186045421, ":person/name" "lucille", ":person/friend" [{":db/id" 17592186045419}], :person/friend [{":db/id" 17592186045419}]}]}]} 

マーシャル

+0

を最新Datomicバージョンにアップグレードした後、それが宣伝:)感謝として動作します。 –

関連する問題