我是新接触DB的人,需要针对特定情况编写Cypher查询的帮助。
我有一段恋情,就像L
Node A -> Depends on -> Node B
Node B -> Depends on -> Node C
Node B -> Depends on -> Node D
Node C -> Depends on -> Node E
Node C -> Depends on -> Node F
Node D -> Depends on -> Node G
Node E -> Depends on -> Node H
Node E -> Depends on -> Node J
Node H -> Depends on -> Node I
我需要节点列表的直接依赖关系。就像,如果我传递了一个列表[节点A,节点B,节点D,节点E,节点H,节点I],它应该返回:
[[Node A, Node B, Node D], [Node E, Node H, Node I]]
任何帮助将不胜感激。
答案 0 :(得分:1)
对于Cypher来说,这很容易,假设您的节点具有标签Node
,并且存储Node A
的属性被命名为name
:
MATCH p=(n:Node)-[:DEPENDS_ON]->(dependency)
WHERE n.name IN ['Node A', 'Node E']
RETURN [x IN nodes(p) | x.name] AS groups