Datomic 풀 표현 :내가 여기 Datomic 풀 구문에 대해 읽고 있었다
http://docs.datomic.com/pull.html
그리고 그것은 [*]
같은 패턴이 엔티티를 당겨 재귀의 개체 속성을 끌어 것이다 와일드 카드 아래에 설명합니다. 직접 인용 :
와일드 카드 사양 * 기업의 모든 속성을 가져옵니다, 재귀 적 구성 요소 속성을 가져옵니다 : 나는 자신이하려고 할 때 난 단지
ref
에 대한db/id
값을 가져,
;; pattern
[*]
;; result
{:release/name "The Concert for Bangla Desh",
:release/artists [{:db/id 17592186049854}],
:release/country {:db/id 17592186045504},
:release/gid #uuid "f3bdff34-9a85-4adc-a014-922eef9cdaa5",
:release/day 20,
:release/status "Official",
:release/month 12,
:release/artistCredit "George Harrison",
:db/id 17592186072003,
:release/year 1971,
:release/media
[{:db/id 17592186072004,
:medium/format {:db/id 17592186045741},
:medium/position 1,
:medium/trackCount 2,
:medium/tracks
[{:db/id 17592186072005,
:track/duration 376000,
:track/name "George Harrison/Ravi Shankar Introduction",
:track/position 1,
:track/artists [{:db/id 17592186048829} {:db/id 17592186049854}]}
{:db/id 17592186072006,
:track/duration 979000,
:track/name "Bangla Dhun",
:track/position 2,
:track/artists [{:db/id 17592186048829}]}]}
...
]}
을하지만 유형. 기본적으로 내가 이런 걸과 함께 pull
표현에서 더 자세한 방법으로 어떤 심판 유형을 호출 할 수 있습니다
[* {:content/type [:db/ident] :content/locales [:db/ident] :content/groups [*]}]
을 그리고 그 자체가 그 안에 ref
종류가 있습니다 :content/groups
때문에, 심지어 실제로 그것의 끝이 아니다 . 와일드 카드의 동작이 언젠가 변경되고 문서가 최신 버전이 아니 었습니까? 아니면 내가 잘못하고있는거야? "재귀 적으로 모든 것을 끌어 당깁니다"라는 말에 대해 더 나은 (더 간결한) 방법이 있습니까?
오케이, 매번 모든 것을 가져 오는 것이 나의 목적이라면': db/isComponent true'를 사용하지 않기로 결정한 이유가 있습니까? – Kevin
그래서 여기에서 읽으십시오 : http://blog.datomic.com/2013/06/component-entities.html 그것은 구성 요소가 부모없이 스스로 존재하지 않는 하위 오브젝트를 다루는 것처럼 보입니다. enum 값에': isComponent true'가있는 것이 합리적입니까? – Kevin
에서 알 수 있듯이, 모든 열거 형은': db/id'와 같으므로 레코드가 수축되면': db/id' 또한 취소됩니다. 따라서 enum 값을': db/isComponent true'로 설정하는 것이 바람직합니다. 왜냐하면 pull 식에서 모든 단일 enum을 수동으로 지정하고 싶지 않지만 다른 한편으로는 엔티티간에 정의를 공유하고 있기 때문입니다. 그래서': db/isComponent'에는 적합하지 않습니다. 그 맞습니까? – Kevin