我正在尝试执行查询以检索两个节点a和b之间的所有路径,其中所有路径都满足关系属性。
我在很多方面都尝试过,但我无法取得成功。
MATCH p =(o {value:“a”}) - [r *] - (x {value:“b”})其中有(r.property)和r.property =“foo”返回p < / p>
关系部分我已经改为[r * ..]和许多其他选项,但没有工作
函数shortest路径对我没有帮助,因为我不仅要求最短但有所有可能性。
有人可以帮我或告诉我查询中的错误是什么?
提前谢谢。
答案 0 :(得分:5)
您正在寻找的是关于路径的关系集合的ALL
谓词:
MATCH p=(o{value:"a"})-[r*]-(x{value:"b"})
WHERE ALL(x IN rels(p) WHERE x.property = "foo")
RETURN p
请使用标签!
答案 1 :(得分:0)
你能在关系/边上添加属性吗?
()-[r:label{property:"foo"}]->()
这将强制使用 foo
属性值的边。
我不是 Neo4j 专家,但对为什么这行不通很感兴趣。
也许你可以发布一个数据的小样本供人们测试。