これは私がneo4jで遊んで初めてのことです。私のcypherスクリプトを見ることができれば幸いです。私はMyNode
という単純なツリーを持っていて、nodeIdで互いに接続されています。Neo4jのルートノードへのパスを取得する方法
NodeEntity:
@NodeEntity
public class MyNode {
@GraphId
private Long id;
private Long nodeId;
private int amount;
@Relationship(type="BELONGS_TO", direction = Relationship.OUTGOING)
private MyNode parent;
}
今私は、ルートノードにすべてのノードを取得し、これらのノードのamount
フィールドの合計をしたいと思います。私はこの木を持っている場合:
100<-102<-103
100<-101
クエリ:
MATCH (p:MyNode)-[:BELONGS_TO*]->(c:MyNode) WHERE c.nodeId = 103 RETURN p.nodeId
そうしかし、
MATCH (p:MyNode)-[:BELONGS_TO*]->(c:MyNode) WHERE c.nodeId = 100 RETURN p.nodeId
戻り101、102、103(102、100を待っている)空のセットを返します反対方向に動作します(ノードのすべての子をリストアップし、ルートノードに向かうパスではありません)。