【发布时间】:2017-02-21 10:00:56
【问题描述】:
如何使用pull 方法通过实体ID 检索实体?我已经使用事务向我的数据库添加了一些 datoms/facts(正确的措辞?)。如果我执行以下简单查询,我可以看到实体 ID:
[:find ?e
:where
[?e :arb/value]
]
结果是:
{[17592186045418] [17592186045420] [17592186045423]}
现在我想使用pull 检索其中一个。但是,文档中的 pull 示例使用了相关实体与 id 相关联的示例。
具体来说,文档引用了 musicbrainz 示例数据集中的示例,他们建议的示例是:
(pull db '[*] led-zeppelin)
led-zeppelin 的定义位置(尽管文档没有显示)是这样定义的(可以看到 here:
(def led-zeppelin [:artist/gid #uuid "678d88b2-87b0-403b-b63d-5da7465aecc3"])
文档说 pull 命令需要三件事:一个 db,一个选择器模式,确定我认为为每个实体提取哪些属性,以及实体的“eid”。所以上面的led-zeppelin var 在某种程度上就是开斋节。
我并不完全了解那里发生的事情。 :artist/gid 似乎是在 musicbrainz 的模式中定义的 id 属性,第三项看起来像特定的 id。我不确定#uuid 是什么。
但是,就我而言,我没有为我的实体定义 id 属性。我希望能够使用我认为默认分配给每个实体的唯一实体 ID。这可能吗?如果是这样,如何做到这一点?
【问题讨论】:
-
“使用查询的拉取表达式”位于链接文件的最底部。
-
@ClojureMostly 我想了解如何使用
pull函数