Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
Neo4j 在可变长度查询中包含路径长度_Neo4j_Cypher - Fatal编程技术网

Neo4j 在可变长度查询中包含路径长度

Neo4j 在可变长度查询中包含路径长度,neo4j,cypher,Neo4j,Cypher,我有一个cypher查询,它当前返回给定节点中具有可变长度路径的所有关系: MATCH (n) WHERE n.name = ({name}) OPTIONAL MATCH path=n-[*..2]-(c) WHERE n <> c WITH rels(path) AS rels UNWIND rels AS rel WITH DISTINCT rel RETURN startnode(rel).name as source, endnode(rel).name as target

我有一个cypher查询,它当前返回给定节点中具有可变长度路径的所有关系:

MATCH (n)
WHERE n.name = ({name})
OPTIONAL MATCH path=n-[*..2]-(c)
WHERE n <> c
WITH rels(path) AS rels
UNWIND rels AS rel
WITH DISTINCT rel
RETURN startnode(rel).name as source, endnode(rel).name as target,  rel.average_alignment
匹配(n)
其中n.name=({name})
可选匹配路径=n-[*…2]-(c)
在哪里
使用rels(路径)作为rels
将rel作为rel展开
具有明显的相关性
返回startnode(rel).name作为源,endnode(rel).name作为目标,rel.average\u对齐
我希望将路径长度添加为返回的一部分:

MATCH (n)
WHERE n.name = ({name})
OPTIONAL MATCH path=n-[*..2]-(c)
WHERE n <> c
WITH rels(path) AS rels
UNWIND rels AS rel
WITH DISTINCT rel
RETURN startnode(rel).name as source, endnode(rel).name as target,  rel.average_alignment, length(path)
匹配(n)
其中n.name=({name})
可选匹配路径=n-[*…2]-(c)
在哪里
使用rels(路径)作为rels
将rel作为rel展开
具有明显的相关性
返回startnode(rel).name作为源,endnode(rel).name作为目标,rel.average\u对齐,长度(path)

如何包括路径长度以及所有关系

WITH子句删除所有以前定义的标识符(如
path
),除非在子句中指定。您的第一个
WITH
子句没有指定
path
(或者仅仅是路径的长度),因此它被删除

像这样的东西应该适合你:

MATCH (n) WHERE n.name = {name}
OPTIONAL MATCH path = (n)-[*..2]-(c)
WHERE n <> c
WITH LENGTH(path) AS lth, RELS(path) AS rels
UNWIND rels AS rel
WITH DISTINCT lth, rel
RETURN STARTNODE(rel).name as source, ENDNODE(rel).name as target,  rel.average_alignment, lth;
匹配(n),其中n.name={name}
可选匹配路径=(n)-[*…2]-(c)
在哪里
长度(路径)为lth,RELS(路径)为RELS
将rel作为rel展开
具有明显的lth、rel
返回STARTNODE(rel).name作为源,ENDNODE(rel).name作为目标,rel.average_对齐,lth;

WITH子句删除所有先前定义的标识符(如
路径
),除非在子句中指定。您的第一个
WITH
子句没有指定
path
(或者仅仅是路径的长度),因此它被删除

像这样的东西应该适合你:

MATCH (n) WHERE n.name = {name}
OPTIONAL MATCH path = (n)-[*..2]-(c)
WHERE n <> c
WITH LENGTH(path) AS lth, RELS(path) AS rels
UNWIND rels AS rel
WITH DISTINCT lth, rel
RETURN STARTNODE(rel).name as source, ENDNODE(rel).name as target,  rel.average_alignment, lth;
匹配(n),其中n.name={name}
可选匹配路径=(n)-[*…2]-(c)
在哪里
长度(路径)为lth,RELS(路径)为RELS
将rel作为rel展开
具有明显的lth、rel
返回STARTNODE(rel).name作为源,ENDNODE(rel).name作为目标,rel.average_对齐,lth;