2017-03-29 2 views
0

와일드 카드 풀을 사용하지 않는 이유가 있습니까?와일드 카드 풀을 사용하지 않는 이유는 무엇입니까?

(defn pull-wild 
    "Pulls all attributes of a single entity." 
    [db ent-id] 
    (d/pull db '[*] ent-id)) 

명시 적으로 특성을 설명하는 것보다 훨씬 편리합니다.

+0

IMIO (http://docs.datomic.com/pull : EID (또는 조회 참조)가 일반 Clojure의 맵으로 전체 기록을 반환을 감안할 때 .html)을 사용하면 [구성 요소 속성] (http://blog.datomic.com/2013/06/component-entities.html)이 전체적으로 제공됩니다. 이것은 많은 일이 될 수 있습니다 : 당신이 원하는 것은 모두 고객 일 때, 큰 주문을위한 쓸데없는 주문 라인입니다. – Thumbnail

답변

1

응용 프로그램에 있어야하는 속성과 데이터 집약적 인 경우 또는 많은 항목을 가져올 것인지 여부에 따라 다릅니다.

클라이언트 라이브러리를 사용할 경우 유선을 통해 전송해야하는 데이터를 최소화 할 수 있습니다.

다른 생각이 많이 있습니다.

하지만 충분히 빠르면 와일드 카드를 가져옵니다.

FRICKE

0

또한 entity-map 기능 from Tupelo Datomic에 관심이있을 수 있습니다. [기본적으로 (내 무지 의견)

(let [ 
     ; Retrieve James' attr-val pairs as a map. An entity can be referenced either by EID or by a 
     ; LookupRef, which is a unique attribute-value pair expressed as a vector. 
     james-map (td/entity-map (live-db) james-eid)      ; lookup by EID 
     james-map2 (td/entity-map (live-db) [:person/name "James Bond"]) ; lookup by LookupRef 
] 
    (is (= james-map james-map2 
     {:person/name "James Bond" :location "London" :weapon/type #{:weapon/wit :weapon/gun} }))