Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 在Neo4j中查找循环_Loops_Neo4j_Cypher_Graph Databases - Fatal编程技术网

Loops 在Neo4j中查找循环

Loops 在Neo4j中查找循环,loops,neo4j,cypher,graph-databases,Loops,Neo4j,Cypher,Graph Databases,我将学习本课程,探索Neo4j数据库。数据库非常简单,它包含11个节点('A','B','C',…),14个关系。我想找到这个Neo4j数据库中的所有循环。我使用下面的查询来查找包含“A”的循环 match p=(n)-[*]-(m) where n.Name = ['A'] and m.Name = ['A'] return EXTRACT(n IN NODES(p)| n.Name) AS Paths, length(p) order by length(p) 问题是,在由上述查询生成的几

我将学习本课程,探索Neo4j数据库。数据库非常简单,它包含11个节点('A','B','C',…),14个关系。我想找到这个Neo4j数据库中的所有循环。我使用下面的查询来查找包含“A”的循环

match p=(n)-[*]-(m)
where n.Name = ['A'] and m.Name = ['A']
return EXTRACT(n IN NODES(p)| n.Name) AS Paths, length(p)
order by length(p)
问题是,在由上述查询生成的几个循环中,一些节点被访问了两次,如以下循环中的“C”:[“A”、“C”、“D”、“B”、“C”、“J”、“F”、“A”]


我可以使用哪个过滤函数来消除这个问题。谢谢,

我相信这个查询应该可以:

MATCH p=(n)-[*]-(m)
WHERE n.Name = ['A'] and m.Name = ['A']
AND NONE (node IN NODES(p) WHERE SIZE(
                FILTER(x IN NODES(p) WHERE node = x AND x.name <> 'A')
        ) > 1
    )
RETURN EXTRACT(n IN NODES(p)| n.Name) AS Paths, length(p)
order by length(p)
匹配p=(n)-[*]-(m)
其中n.Name=['A']和m.Name=['A']
和NONE(节点中的节点(p),其中(
过滤器(节点(p)中的x,其中节点=x,x.name“A”)
) > 1
)
返回提取(n在节点(p)| n.Name)作为路径,长度(p)
按长度排序(p)
也就是说:查询使用、和函数来保证只匹配没有重复节点的路径


基于此。

您可以编辑您的问题并将Cypher查询加载到数据库吗?我还不知道如何使用Cypher创建此数据库。但以下是下载数据集(test.csv)文件以生成此数据库的链接:。当我确切知道如何使用Cypher生成这个数据库时,我会更新我的帖子。谢谢,@Bruno。您的查询不会得到任何循环,因为在每个循环中,开始节点和结束节点都是相同的(在本例中为'A'节点)。您好@James,您好!我编辑了我的答案,请现在试一试!:)谢谢不客气,詹姆斯。如果此答案解决了您的问题,请记住通知其他用户您的问题已解决,并帮助未来的观众了解此问题。