[英]cypher query to match all nodes of a specific relationship type to a specific node
[英]Cypher to connect matched nodes based on specific relationship
如果我做:
MATCH (x:NODE {x.name: "Node1"})-[r:REL1]-(y:NODE) return x,r,y
然后,如何找到x
和y
节点集中的所有REL1
关系?
编辑:
根据答案,我认为问题尚不清楚。
图表示例:
create (:T1 {name:1}), (:T1 {name:2}), (:T1 {name:3}), (:T1 {name:4}), (:T1 {name:5}), (:T1 {name:6}), (:T1 {name:7})
match (a:T1 {name:1}), (b:T1 {name:2}) create (a)-[r:REL1]->(b)
match (a:T1 {name:1}), (b:T1 {name:3}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:4}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:3}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:2}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:1}) create (a)-[r:REL1]->(b)
match (a:T1 {name:7}), (b:T1 {name:6}) create (a)-[r:REL2]->(b)
match (a:T1 {name:7}), (b:T1 {name:5}) create (a)-[r:REL2]->(b)
match (a:T1 {name:7}), (b:T1 {name:4}) create (a)-[r:REL2]->(b)
match (a:T1 {name:7}), (b:T1 {name:3}) create (a)-[r:REL2]->(b)
我将查找与节点name:5
具有REL1
关系的所有内容。 我还想找到返回节点之间的所有REL1
关系。
所以我应该得到
5->4
5->3
5->2
5->1
1->2
1->3
但不是
7->5
7->4
7->3
因为那些是REL2
关系。
所以我想我可以这样做:
match (a:T1 {name: 5})-[b:REL1]->(c:T1) return a,b,c
union match (a:T1)-[b:REL1]-(c:T1) return a,b,c
但是问题在于我正在使用的图形非常大,因此效率似乎很低。 我希望能够
5
节点) 如果需要找出x和y节点集中的所有REL1关系,则从x节点中删除条件。
MATCH (x:NODE)-[r:REL1]-(y:User) return x,r,y
我们正确地使用双向,以任何一种方式查找关系,但是当您尝试查找所有关系时,您仅选择一个关系REL1,从关系[]中删除标签,因此可以使用以下查询并返回*,它将返回所有使用的变量。
MATCH (x:NODE {x.name: "Node1"})-[r]-(y:NODE) return *
要获得通过一个或多个REL1
关系连接的所有不同的节点对,只需执行以下操作:
MATCH (a:T1)-[:REL1]->(c:T1)
RETURN DISTINCT a, c
结果将是:
╒══════════╤══════════╕
│"a" │"c" │
╞══════════╪══════════╡
│{"name":1}│{"name":2}│
├──────────┼──────────┤
│{"name":1}│{"name":3}│
├──────────┼──────────┤
│{"name":5}│{"name":1}│
├──────────┼──────────┤
│{"name":5}│{"name":2}│
├──────────┼──────────┤
│{"name":5}│{"name":3}│
├──────────┼──────────┤
│{"name":5}│{"name":4}│
└──────────┴──────────┘
如果您还希望每对之间的关系,可以执行以下操作:
MATCH (a:T1)-[r:REL1]->(c:T1)
RETURN a, c, COLLECT(r) AS rels
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.