我有一个 neo4j 密码遍历问题。
设置:我有一个从节点“a”开始的查询,并为我提供了关系为“FOO”的所有路径。所有这些“FOO”关系都有一个参数“BAR”。参数“BAR”可以有 2 个(或更多)值“1”和“2”。现在我想排除所有包含一个或多个 FOO.BAR="2" 关系的路径。
查询: START a=node(x) MATCH a-[rh:FOO*]->b RETURN rh; rh 为我提供了所有可能的路径,但我不知道如何添加有关关系的标准。
我在控制台中创建了一个场景(http://console.neo4j.org/?id=219eub)
创造
(a {name:"A"}),
(b {name:"B"}),
(c {name:"C"}),
(d {name:"D"}),
b-[:FOO{BAR:'1'}]->a,
d-[:FOO{BAR:'1'}]->a,
c-[:FOO{BAR:'2'}]->b,
d-[:FOO{BAR:'1'}]->c
开始 n=节点(4)
匹配 n-[rh:FOO*]-b
返回 rh;
这给了我查询结果
+-------------------------------------------------- --------------------------+
| n.name | 右下角 | b.名称 |
+-------------------------------------------------- --------------------------+
| "D" | [:FOO[2] {BAR:"1"}] | “一个” |
| "D" | [:FOO[3] {BAR:"1"}] | "C" |
| "D" | [:FOO[3] {BAR:"1"},:FOO[1] {BAR:"2"}] | "B" |
| "D" | [:FOO[3] {BAR:"1"},:FOO[1] {BAR:"2"},:FOO[0] {BAR:"1"}] | “一个” |
+-------------------------------------------------- --------------------------+
但我只想
+-------------------------------------------------- --------------------------+
| n.name | 右下角 | b.名称 |
+-------------------------------------------------- --------------------------+
| "D" | [:FOO[2] {BAR:"1"}] | “一个” |
| "D" | [:FOO[3] {BAR:"1"}] | "C" |
+-------------------------------------------------- --------------------------+