首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在neo4j中迭代节点

在neo4j中迭代节点
EN

Stack Overflow用户
提问于 2017-10-14 19:19:13
回答 1查看 856关注 0票数 1

我有一个图,有2137个不同的路径,没有相互连接。每个路径中的节点由一个属性" Isnad“编号,其中Isnad=1,2,3.2137。我要返回所有2137条路径的长度。

代码语言:javascript
复制
match(n:Narrator)
where n.Isnad = "1"
return count(n)

现在这对我有用,但我想迭代"Isnad“,所以我得到了所有2137条路径的计数,而不仅仅是一条路径。有什么建议吗?在伪码中,这就像:

代码语言:javascript
复制
for(int i = 1 to 2137)
    match(n:Narrator)
    where n.Isnad = i
    return count(n)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-14 19:32:37

使用rangeUNWIND

代码语言:javascript
复制
unwind range(1, 2137) AS i
match p=(n:Narrator)-[*]->(m)
where toInteger(n.Isnad) = i
  and not ()-[]->(n)
  and not (m)-[]->()
return n.Isnad, length(p)
limit 10

注意,我们正在寻找最长的路径。这在WHERE条件中表示:路径的第一个节点不应该有前一个节点(not ()-[]->(n)),而路径的最后一个节点不应该有一个后续节点(not (m)-[]->()) --参见this answer

我包括了limit 10行,这样计算和返回的结果就不会冻结服务器或web用户界面。如果查询看起来还好,请删除limit 10并查看它是否仍然有效。当嵌入到客户端应用程序时,它可以扩展到更多的结果,因为web的呈现不再是一个瓶颈。

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

https://stackoverflow.com/questions/46748430

复制
相关文章

相似问题

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