我是Neo4j的新手,我需要为昨天做一些原型。我仍然在考虑使用一个传统的关系数据库来完成这个任务,除非您能够清楚地展示它在这个特定应用程序中使用图形数据库是多么的方便。
假设我有这张图表:

B有父母A
C有亲本A
D有父母A
E有父B
F有父C
G有父C
H有父C
我有父母D
我需要尽可能检索按最大节点组分组的当前节点+1级别。
我对节点A的结果:

我的第一组成绩:

等等..。
我从零开始,所以你的所有建议都会很感激的。
发布于 2017-09-09 16:42:27
要建立这个层次结构的模型,您需要一个定义的关系类型,它允许我们选择什么是什么的子级。因此,让我们假设这样的设置:
CREATE (a:Node { name: 'a' }), (b:Node { name: 'b' }),
(c:Node { name: 'c' }), (d:Node { name: 'd' }),
(e:Node { name: 'e' }), (f:Node { name: 'f' }),
(g:Node { name: 'g' }), (h:Node { name: 'h' }),
(i:Node { name: 'i' }),
(a)-[:child]->(b), (a)-[:child]->(c);
/* And so on for all relationships */查询组是一个非常简单的过程,只需遍历:child链接,如下所示:
MATCH (a:Node { name: 'a' })-[:child*]->(groupMember:Node)
RETURN groupMember;这里的神奇之处就是*,它允许您匹配任意数量的关系跳。只要您的图没有循环,这将始终为您提供一个层次结构中完整的后代节点集。
你可以从那里得到相当的花哨--限制路径长度,只获取n个层次结构,对子层施加额外的条件,或者将其与路径匹配,然后通过图而不是节点本身返回路径,不管您喜欢什么。
https://stackoverflow.com/questions/46132116
复制相似问题