Neo4j 如何找到所有具有N个单一类型关系的节点?
我有一些节点A通过关系rel连接到节点B。我将写什么查询来通过关系rel返回与恰好3 A或恰好4 A或正好n A相关的所有B?我通过使用以下匹配子句实现了这一点:Neo4j 如何找到所有具有N个单一类型关系的节点?,neo4j,cypher,Neo4j,Cypher,我有一些节点A通过关系rel连接到节点B。我将写什么查询来通过关系rel返回与恰好3 A或恰好4 A或正好n A相关的所有B?我通过使用以下匹配子句实现了这一点: MATCH (a1:A)<-[:rel]-(b:B)-[:rel]->(a2:A) 匹配(a1:A)(a2:A) 我还需要知道哪个3A连接到该B,因为我需要计算该组3A的出现次数,您可以通过以下方式进行聚合: Upd:如果需要返回连接到(:B)的节点,请尝试使用和函数: 您可以通过以下方式进行聚合: Upd:如果需要返
MATCH (a1:A)<-[:rel]-(b:B)-[:rel]->(a2:A)
匹配(a1:A)(a2:A)
我还需要知道哪个3A连接到该B,因为我需要计算该组3A的出现次数,您可以通过以下方式进行聚合:
Upd:如果需要返回连接到(:B)的节点,请尝试使用和函数:
您可以通过以下方式进行聚合:
Upd:如果需要返回连接到(:B)的节点,请尝试使用和函数:
我想可以短一点
MATCH (b:B)
WHERE size((b)-[:rel]->(:A)) = 3
RETURN b,[(b)-[:rel]->(a:A) | a ] AS nds
我想可以短一点
MATCH (b:B)
WHERE size((b)-[:rel]->(:A)) = 3
RETURN b,[(b)-[:rel]->(a:A) | a ] AS nds
这也可以用来返回连接到B的A的3个节点是什么?就像B和a1,a2,a3一样,它们是A的节点,因为我实际上想通过a1,a2,a3组合对B的数量进行分组。其次A和B不是变量。我想你想写的是a和B,这也可以用来返回a和B连接的3个节点是什么?就像B和a1,a2,a3一样,它们是A的节点,因为我实际上想通过a1,a2,a3组合对B的数量进行分组。其次A和B不是变量。我想你想写的是a和b
MATCH (b:B)
WHERE size((b)-[:rel]->(:A)) = 3
RETURN b,[(b)-[:rel]->(a:A) | a ] AS nds