根据边的属性构建查询,而不是Cypher中存在边

时间:2016-03-19 20:11:00

标签: neo4j cypher

如果我错了,请纠正我,但这种类型的Cypher语句会检查关系的存在

start n=node(*)
match (n)-[:SOME_RELATIONSHIP]-()
return distinct n

要快速重申,如果仅存在[:SOME_RELATIONSHIP],那么我们将获得匹配和结果。

但是,如果您的图表以这种方式设置,所有您的节点都有[:SOME_RELATIONSHIP],会发生什么。这些关系之间的区别因素包含 in 这种关系?

换句话说,我说有一个包含属性的边缘。事实上,我的图中的边缘比它们连接的节点具有更多的属性。

我发现很难查询这样的图表,因为Cypher语法只允许我检查是否存在关系。我想根据边缘的属性构建查询! Cypher允许这样做吗?

1 个答案:

答案 0 :(得分:1)

可以使用关系属性进行查询。您可以采用与节点相同的方式执行此操作:

match (n)-[r:SOME_RELATIONSHIP]-()
where r.someProperty = someValue
return distinct n

match (n)-[:SOME_RELATIONSHIP { someProperty: someValue }]-()
return distinct n