图遍历

为了举例,我们会生成一个下面这样的图:

er-traversal-graph

第一步,生成 3 个模式: Pet, User, Group.

entc init Pet User Group

然后,为模式添加一些必要的字段和边:

ent/schema/pet.go

ent/schema/user.go

ent/schema/group.go

让我们开始编写用于填充图的顶点和边的代码:

再看一下我们要遍历的图及其代码:

er-traversal-graph-gopher

上面的遍历开始于一个 Group 实体:通过 admin 边、 friends 边、pets 边找到他们的宠物,然后再获取每个宠物的朋友(宠物的 frieds 边)的主人。

下面这个图又怎么遍历呢?

er-traversal-graph-gopher-query

我们想获取某个群组的 adminfriend 的全部宠物。

完整的实例请参考 GitHub.

Last updated

Was this helpful?