原子逆向简单导航

问题描述 投票:1回答:1

[学习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
1个回答
2
投票

我也在学习Datomic,目前,我正在使用Datahike,因为语法相似且更易于在imo上进行开发

© www.soinside.com 2019 - 2024. All rights reserved.