Graph 迭代neo4j中的节点
我有一个有2137条不同路径的图,它们之间没有连接。每个路径中的节点由一个属性“Isnad”进行编号,其中Isnad=1,2,3…2137。我想返回所有2137条路径的长度Graph 迭代neo4j中的节点,graph,neo4j,cypher,Graph,Neo4j,Cypher,我有一个有2137条不同路径的图,它们之间没有连接。每个路径中的节点由一个属性“Isnad”进行编号,其中Isnad=1,2,3…2137。我想返回所有2137条路径的长度 match(n:Narrator) where n.Isnad = "1" return count(n) 现在这对我来说是可行的,但是我想迭代“Isnad”,所以我得到了所有2137条路径的计数,而不是一条。有什么建议吗? 在伪代码中,类似于: for(int i = 1 to 2137) match(n:Nar
match(n:Narrator)
where n.Isnad = "1"
return count(n)
现在这对我来说是可行的,但是我想迭代“Isnad”,所以我得到了所有2137条路径的计数,而不是一条。有什么建议吗?
在伪代码中,类似于:
for(int i = 1 to 2137)
match(n:Narrator)
where n.Isnad = i
return count(n)
使用和:
请注意,我们正在寻找最长的路径。这在中表示,其中
条件:路径的第一个节点不应具有前一个节点(非()-[]->(n)
),而路径的最后一个节点不应具有后一个节点(非(m)-[]->()
)--请参阅
我加入了
limit 10
行,以便计算和返回结果不会冻结服务器或web用户界面。如果查询似乎正常,请删除限制10
,然后查看它是否仍然有效。当嵌入到客户端应用程序时,它可以扩展到更多结果,因为web UI的呈现不再是瓶颈。对不起,我想你误解了我的问题。我的代码只适用于一个“Isnad”。我需要一个查询,可以迭代我的Isnad从1到2,3,4等等,并返回每个Isnad的长度。类似这样:对于(i:1到2137)返回长度(p),其中n.Isnad=i;谢谢,这几乎是正确的,只是它对路径中的每个节点都重复了这一点。例如,如果一条路径中有3个节点,它将返回所有3个节点的长度,而不仅仅是第一个节点的长度。这是我的查询和结果:(我必须编辑一下你的,因为对于我的节点,Isnad不是它们唯一的属性。而且,Isnad属性已经将数字存储为字符串,所以我首先将它们转换为整数):)除了“讲述者”,你有任何节点标签可以用于查询吗?关系类型呢?同时,我发现了查询的问题——这里,我们感兴趣的是最长路径的长度,而不是从特定节点开始的所有路径。工作非常完美!非常感谢您的时间和耐心:)
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