[英]Neo4j Cypher how to include another relationship node of parent in APOC neo4j cypher query
讓我們考慮
在Cypher查詢下面,以獲取帶有每個節點標記的部分
MATCH p=(n:Category)-[:SUB_CATEGORY*]->(m)<-[:TAGGED_TO]-(part:Part)
WHERE NOT ()-[:SUB_CATEGORY]->(n) AND toLower(part.name) STARTS WITH toLower('atm')
WITH COLLECT(p) AS ps
RETURN ps
上面的密碼查詢返回實際結果集,即它顯示了SUB_CATEGORY和TAGGED_TO的所有關系
現在,如果我以前使用APOC程序將其轉換為Tree結構,那么它將跳過父節點的TAGGED_TO關系節點,即Drone
MATCH p=(n:Category)-[:SUB_CATEGORY*]->(m)<-[:TAGGED_TO]-(part:Part)
WHERE NOT ()-[:SUB_CATEGORY]->(n) AND toLower(part.name) STARTS WITH toLower('atm')
WITH COLLECT(p) AS ps
CALL apoc.convert.toTree(ps) YIELD value
RETURN value
您能給我建議使用APOC獲取所有節點的TAGGED_TO節點以及父節點嗎
在第一個查詢中,由於啟用了瀏覽器選項“ Connect result nodes
顯示了父節點Drone
和:Part
節點之間的TAGGED_TO
關系:
如果選中此選項,則在檢索密碼查詢結果之后,將執行第二個查詢以獲取結果節點之間的關系。
但是實際上結果中沒有這種關系,因為匹配模式未考慮路徑具有長零的可能性。 嘗試這個:
MATCH p=(n:Category)-[:SUB_CATEGORY*0..]->(m:Category)<-[:TAGGED_TO]-(part:Part)
WHERE NOT ()-[:SUB_CATEGORY]->(n) AND toLower(part.name) STARTS WITH toLower('atm')
WITH COLLECT(p) AS ps
CALL apoc.convert.toTree(ps) YIELD value
RETURN value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.