首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按最小特定组分组的Node4j检索节点

按最小特定组分组的Node4j检索节点
EN

Stack Overflow用户
提问于 2017-09-09 15:17:44
回答 1查看 93关注 0票数 1

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

假设我有这张图表:

B有父母A

C有亲本A

D有父母A

E有父B

F有父C

G有父C

H有父C

我有父母D

我需要尽可能检索按最大节点组分组的当前节点+1级别。

我对节点A的结果:

我的第一组成绩:

等等..。

我从零开始,所以你的所有建议都会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-09 16:42:27

要建立这个层次结构的模型,您需要一个定义的关系类型,它允许我们选择什么是什么的子级。因此,让我们假设这样的设置:

代码语言:javascript
复制
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链接,如下所示:

代码语言:javascript
复制
MATCH (a:Node { name: 'a' })-[:child*]->(groupMember:Node)
RETURN groupMember;

这里的神奇之处就是*,它允许您匹配任意数量的关系跳。只要您的图没有循环,这将始终为您提供一个层次结构中完整的后代节点集。

你可以从那里得到相当的花哨--限制路径长度,只获取n个层次结构,对子层施加额外的条件,或者将其与路径匹配,然后通过图而不是节点本身返回路径,不管您喜欢什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46132116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档