微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

返回唯一节点且没有关系的路径

如何解决返回唯一节点且没有关系的路径

我有这个密码查询

MATCH p=(no {name:'nodeName'})<-[:enfant*0..]-(parent:application) 
unwind nodes(p) as n unwind relationships(p) as r
with collect( distinct {id: id(n),name: n.name,labels: labels(n)}) as nl,collect( distinct {source: id(startnode(r)),target: id(endnode(r))}) as rl 
RETURN {nodes: nl,links: rl}

这个请求重新运行一个节点与其所有父节点之间的路径,然后转换为d3js格式(nodes&links)。 我有这些情况:

  1. 起始节点不是应用程序 --> 路径返回所有节点和关系,因此响应良好

  2. 开始节点已经是一个应用程序,所以路径返回这个节点然后我有这个响应:

    {"nodes":[],"links":[]}

通常我会有:

{"nodes":[{id: 111,name: 'nodeName',labels:['application']}],"links":[]}

当我在没有这样的关系的情况下进行测试时:

MATCH p=(no {name:'nodeName'})<-[:enfant*0..]-(parent:application) 
WITH p
unwind nodes(p) as n 
with collect( distinct {id: id(n),labels: labels(n)}) as nl
RETURN {nodes: nl}

我有很好的回应:

{"nodes":[{"name":"nodeName","id":111,"labels":["application"]}]}    

所以问题出在有关系的 collect() 中,因为它是空的,我不知道我该如何解决? 谢谢。

解决方法

我找到了解决方案,问题是路径返回一个唯一的节点,因此关系将是一个空列表,当您展开一个空列表时,它会清除行 如果你想在这里找到讨论:https://community.neo4j.com/t/path-that-return-a-unique-node-and-no-relationship/34719/2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。