我有一个 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" | +-------------------------------------------------- --------------------------+