2
現在我需要查詢,返回的Borko的祖先節點與數量的關係跳..事情是這樣的:
- Cupko。 .. 1
- 米爾科... 2
- 月... 3
questio的第二部分如果我們包含母親關係,那麼查詢會是什麼樣子?結果應該是這樣的:
- Cupko ......爸...... 1個
- SomeFemale ...媽媽... 1
- 米爾科......爸爸...... 2
- SomeFemale2。 ..媽媽... 2
現在我需要查詢,返回的Borko的祖先節點與數量的關係跳..事情是這樣的:
questio的第二部分如果我們包含母親關係,那麼查詢會是什麼樣子?結果應該是這樣的:
我用這個片段重新創建數據集:
CREATE
(:Person {name: 'Jan'})-[:Father]->
(:Person {name: 'Mirko'})-[:Father]->
(:Person {name: 'Cupko'})-[:Father]->
(:Person {name: 'Borko'})
你應該保存path和使用路徑的長度得到的跳數:
MATCH p=(b:Person {name: 'Borko'})<-[:Father*]-(n)
RETURN n, length(p)
這將返回:
╒════════════════╤═══════════╕
│"n" │"length(p)"│
╞════════════════╪═══════════╡
│{"name":"Cupko"}│1 │
├────────────────┼───────────┤
│{"name":"Mirko"}│2 │
├────────────────┼───────────┤
│{"name":"Jan"} │3 │
└────────────────┴───────────┘
對於第二部分,你可以使用relationships
功能:
MATCH p=(b:Person {name: 'Borko'})<-[:Father|Mother*]-(n)
WITH p, relationships(p) AS rels, n
RETURN n, length(p) AS hops, type(rels[length(rels)-1]) AS type
此回報:
╒════════════════╤══════╤════════╕
│"n" │"hops"│"type" │
╞════════════════╪══════╪════════╡
│{"name":"Cupko"}│1 │"Father"│
├────────────────┼──────┼────────┤
│{"name":"Mirko"}│2 │"Father"│
├────────────────┼──────┼────────┤
│{"name":"Jan"} │3 │"Father"│
└────────────────┴──────┴────────┘
當然,您可以使用大小寫表達式將關係的名稱轉換爲適當的類型,例如, CASE type(rels[length(rels)-1]) WHEN 'Father' THEN 'Dad' WHEN 'Mother' THEN 'Mom' END AS role