考慮,看起來像這樣的圖表:如何使用collect來組合允許空列表作爲結果的節點?
(node) -> (related nodes)
a1 -> [b1, b2, b3]
a2 -> [b1]
a3 -> []
我想回到擴展與鄰國的列表中的所有節點。我現在查詢是以下
MATCH (x0:A)
MATCH (x1:B)
WHERE ((x0)-[:B]->(x1))
WITH x0,collect(x1) as x2
WITH x0,x0{.*, neighbors:x2} as x3
RETURN x3 as result
執行查詢我得到以下結果後:
╒══════════════════════════════╕
│"result" │
╞══════════════════════════════╡
│{"name":"a1","neighbors":[{"na│
│me":"b1"},{"name":"b2"},{"name│
│":"b3"}]} │
├──────────────────────────────┤
│{"name":"a2","neighbors":[{"na│
│me":"b1"}]} │
└──────────────────────────────┘
,但我想要的「A3」的節點也出現在結果中,像這樣:
╒══════════════════════════════╕
│"result" │
╞══════════════════════════════╡
│{"name":"a1","neighbors":[{"na│
│me":"b1"},{"name":"b2"},{"name│
│":"b3"}]} │
├──────────────────────────────┤
│{"name":"a2","neighbors":[{"na│
│me":"b1"}]} │
├──────────────────────────────┤
│{"name":"a3","neighbors":[]} │
└──────────────────────────────┘
我該如何編寫查詢呢?
我已經試過了,但有一個額外的「WITH」,它不起作用。 (x0) - [:B] - >(x1:B) WITH x0,x1「 」爲什麼?謝謝! –
您需要一個'RETURN'子句(否則查詢無用,Cypher不允許這樣做)。 – cybersam
我的意思是WITH子句作爲查詢的一部分,在答案的可選匹配之後。 –