[学习Datomic,遇到基本情况时遇到麻烦。给定一个简单的架构,其中包含:
:club/name
:club/members (ref, cardinality many)
和
:people/name
所以它可能会这样填充(基本上):
[
{:club/name "Carpentry" :club/members [:person/name "liliana" :person/name "alexei"}]}
{:club/name "Taxidermy" :club/members [:person/name "karenna" :person/name "alexei"}]}
etc.
]
我想进行反向导航以找到“所有俱乐部'alexei'在其中”。如果这样做,我只会得到一个俱乐部:
d/q '[:find (pull ?g [ {:club/_members [:club/name]}])
:in $
:where
[?g :person/name "alexei"]
]
(d/db conn))
我希望此示例数据能获得两次成功。我是否向后建模?我是否需要创建一个单独的实体来表达俱乐部成员?
非常感谢!
我也在学习Datomic,目前,我正在使用Datahike,因为语法相似且更易于在imo上进行开发