返回已在密码

时间:2016-09-01 03:05:52

标签: neo4j cypher

我有一个可以正常使用的代码段:

MATCH p=(:Person)-[*]->(:Person)
WHERE 1 < REDUCE(s = 0, x IN NODES(p) | CASE WHEN x.some_var = '1' THEN s + 1 ELSE s END)
WITH p
RETURN p;

这将返回有两个或更多some_var个实例的路径。没问题。

但是如何才能访问p的某些属性?

例如,假设每个节点都有node_id属性。我想为p中的每个节点提供所有这些表格。

我需要类似上面的代码,但以:

结尾
...  
RETURN p.node_id;  

即使我知道这是完全错误的。

1 个答案:

答案 0 :(得分:1)

您可以使用extract从路径中提取这些属性,例如:

MATCH p=(:Person)-[*]->(:Person)
WHERE 1 < REDUCE(s = 0, x IN NODES(p) | CASE WHEN x.some_var = '1' THEN s + 1 ELSE s END)
WITH p
RETURN p, extract(x IN nodes(p) | x.node_id) as nodeIds;

或更短的版本:

MATCH p=(:Person)-[*]->(:Person)
WHERE 1 < REDUCE(s = 0, x IN NODES(p) | CASE WHEN x.some_var = '1' THEN s + 1 ELSE s END)
WITH p
RETURN p, [x IN nodes(p) | x.node_id] as nodeIds;