datomic.api/datoms
fn을 사용하면 느린 방식으로 엔티티에 액세스 할 수 있습니다. 당신의 속성이 :db/index
이있는 경우는 datoms
를 호출하고 사용 가능한 인덱스의 유형은 당신이. 예를 들어 :avet
인덱스에 관심있는 속성의 유형에 따라 다릅니다 때 인덱스 유형을 지정해야
주에만 사용할 수 있습니다 스키마에 설정되고 :vaet
색인은 사용자의 속성이 :db.type/ref
인 경우에만 사용할 수 있습니다.
우리는 직장에서이 같은 것을 사용 (참고 : 속성, ref-attr
이 작동 할 수 :db.type/ref
이어야합니다) :
(defn datoms-by-ref-value
"Returns a lazy seq of all the datoms in the database matching the
given reference attribute value."
[db ref-attr value]
(d/datoms db :vaet value ref-attr))
datoms
문서는 비트 스파 스이지만, 일부 재판 오류와 당신은 아마도 당신이 필요로하는 것을 해결할 수 있습니다. :avet
색인을 사용하는 것에 대한 post by August Lilleaas이 있습니다 (어느 것이 datomic 스키마의 속성에 대한 색인이 필요함). 다소 도움이되는 것으로 나타났습니다.
내가 볼 수있는 확실한 근거는 없지만 이것은 미묘한 문제처럼 보입니다. 문서에 따르면 쿼리의 모든 중간 단계는 기본 데이터 집합이 필요하지 않더라도 메모리에 적합해야합니다. 이것은 결과가 또한 기억에 꼭 들어 맞아야하는 이유 인 것처럼 보인다. 데이터 로그의 작동 방식이나 구현 방식과 관련이 있다고 생각합니다. 이 요구 사항과 지연 쿼리 API의 부족 여부는 명확하지 않지만 이것이 가장 좋은 추측입니다. 또한 집계 기능조차도 베타로 표시됩니다. –
두 번째 질문에 관해서는'datoms'와'seek-datoms'가 가장 가까울 것입니다. 원시 자료에 게으른 접근을 제공합니다. –