如何解决查询写入跃点并从中间节点返回所有属性,还是一种更好的方法来跳过跃点?
节点A通过不同的节点B(B可以重复),C和D等连接到节点E,如下所示。
(A)--(C)--(D)--(E)
(A)--(B)--(C)--(D)--(E)
(A)--(B)--(B)--(C)--(D)--(E)
(A)--(B)--(B)--(B)--(C)--(D)--(E)
A和C之间最多可能有7个B节点,或者根本没有B节点(就像上面的第一种情况一样)。
问题:如何通过单个查询将所有E1,E2,E3,E4连接到A1,并从所有A,B,C,D和E节点返回属性?我无法使用啤酒花返回属性。
MATCH (A {Id:30})-[*1..6]-(E) RETURN DISTINCT A.Name,E.Name;
但是我们要返回B.Name(如果中间也有多个B节点,则它们的名称也一样),C.Name和D.Name也要返回。如果需要,很高兴完全跳过跳跃。请帮忙?预先感谢。
解决方法
尝试一下
// in case there is always A,C and E,you can look for
// paths with length 3 to 6
MATCH path=(A)-[*3..6]-(E)
// return the name of each node in the same order
RETURN [n IN nodes(path) | n.name] AS nodeNames
,
假设A
至E
是节点labels,此查询应获取所有与您的模式匹配的路径({{1}之间的0到7个B
节点}和A
节点),并返回节点C
值的不同列表:
Name
通常,如果您还可以指定关系类型及其方向,则查询会更有效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。