엔터티 ID로 pull
메서드를 사용하여 엔터티를 검색하려면 어떻게해야합니까? 나는 약간의 datoms/facts (right phraseing?)를 db에 추가하기 위해 transact를 사용했다. 내가 같은 간단한 쿼리를 할 경우 나는 엔티티 ID가의를 볼 수 있습니다Datomic의 pull 메소드를 사용하여 엔티티 ID로 엔티티를 가져 오려면 어떻게해야합니까?
[:find ?e
:where
[?e :arb/value]
]
결과의 존재 : 이제
{[17592186045418] [17592186045420] [17592186045423]}
I 이 중 하나를 pull을 사용하여 검색하고 싶습니다. 그러나 pull에 대한 문서의 예제는 해당 엔터티가 id와 연결된 예제를 사용합니다.
즉, 문서는 뮤직 브레인 샘플 데이터 세트에서 예를 참조하고 제안 샘플은 다음
(pull db '[*] led-zeppelin)
가 (문서, 스프레드이 표시되지 않지만), LED 펠린을 갖는 경우 , 선택기 패턴 DB를 : (def led-zeppelin [:artist/gid #uuid "678d88b2-87b0-403b-b63d-5da7465aecc3"])
워드 프로세서
는 풀 명령 세가지 걸리는 말 : here를 알 수있는 바와 같이 (과 같이 정의 된 나는 각 엔티티에 대해 어떤 속성을 가져 왔는지, 그리고 엔티티의 "eid"를 생각한다. 그래서 위의 led-zeppelin
var은 어떻게 든 eid입니다.
나는 실제로 어떤 일이 벌어지는 지 완전히 추리하지 않습니다. : artist/gid는 musicbrainz의 스키마에 정의 된 id 속성이며 세 번째 항목은 특정 ID와 같습니다. #uuid가 뭔지 잘 모르겠습니다.
하지만 제 경우에는 엔티티에 대한 id 속성을 정의하지 않았습니다. 각 엔티티에 기본적으로 할당 된 고유 엔티티 ID를 사용할 수 있기를 바랬습니다. 이것이 가능한가? 그렇다면 어떻게 될까요?
"쿼리를 사용한 표현식 끌어 오기"는 링크 된 파일 맨 아래에 있습니다. – ClojureMostly
@Clojure 나는'pull' 함수를 사용하는 방법을 이해하려고 노력 중이다. – fraxture