Neo4j 在可变长度查询中包含路径长度
我有一个cypher查询,它当前返回给定节点中具有可变长度路径的所有关系: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
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;