1
엔티티와 모든 구성 요소 부모를 트리 위로 끌어 올 수 있습니까?엔티티를 가져올 수 있으며 부모 구성 요소가 구성 요소 트리 전체에서 위로 올 수 있습니까?
역방향 순환 풀.
그렇지 않은 경우 어떻게해야합니까?
엔티티와 모든 구성 요소 부모를 트리 위로 끌어 올 수 있습니까?엔티티를 가져올 수 있으며 부모 구성 요소가 구성 요소 트리 전체에서 위로 올 수 있습니까?
역방향 순환 풀.
그렇지 않은 경우 어떻게해야합니까?
데이터 풀 식은 역방향 속성 탐색을 지원합니다. 스키마를 가정하면 다음과 같이이다 : (이하 "_children"를 참고) 재귀 적 구성 요소의 부모를 뽑아
(defn node [name & children]
(cond-> {:db/id (d/tempid :db.part/user)
:db/doc name}
children (assoc :node/children children)))
(d/transact conn [(node "L1"
(node "L1.1"
(node "L1.1.1")
(node "L1.1.2"))
(node "L1.2"
(node "L1.2.1")))])
를 사용하여 쿼리 :
(d/transact conn [{:db/id (d/tempid :db.part/db)
:db/ident :node/children
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/many
:db.install/_attribute :db.part/db}])
트리를 만들려면
(d/q '[:find (pull ?e [:db/doc {:node/_children ...}]) .
:where [?e :db/doc "L1.2.1"]]
(d/db conn))
=> {: db/doc "L1.2.1", : 노드/_children [{: db/doc "L1.2", 노드/_children [{: db/doc "L1"}]}}}
당신의 대답을 위해. 자식이 같은 엔티티 형인 경우에만 가능합니까? 중첩 전체에 다른 유형이있는 경우 여러 중첩 된 당김이 필요합니까? – stuartrexking
Datomic은 "유형"(관계형 데이터베이스의 테이블과 같은) 개념을 부과하지 않습니다. 동일한 관계형 속성이 존재하는 한 (: 노드/자식 경우), 재귀 구문은 모든 관련 엔티티를 제거합니다 (또는 그렇게 지정한 경우 레벨까지). – rmcv
감사합니다. 나는 당신의 대답과 논평에 기초하여 나를 위해 일한 것을 보여 주었다. – stuartrexking