假設約翰向Met銷售商品,Met在銷售商品給Bob和Alen, 和Alen再次向John出售商品。 我需要的是一個Cypher查詢,返回所有實例,如本例 John..Met..Alen,因爲Alen再次向John出售商品,使其成爲一個封閉的圓圈,同時顯示關係屬性(數量)的最低數量。我如何從整個數據庫做到這一點,讓我所有的實際圈數和最小數量。謝謝!獲得閉環內的所有節點和關係屬性
1
A
回答
3
從Stefans的回答開始,至少你會想把路徑的長度考慮在內。
start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
return p, lenght(p)
每個節點只最短路徑長度
start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
return n, min(lenght(p))
,如果你想獲得的最短路徑:
start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
with n, collect(nodes(p)) as nodes, min(length(nodes(p))) as l
return n, head(filter(p in nodes : length(p) = l)) as shortest_circle,l
見一個例子Neo4j的控制檯:http://console.neo4j.org/r/wrm522
你會注意到的一點是,如果你掃描整個圖表,你會得到對於圓的每個節點多次相同的圓。
這使用節點,長度,收集,頭和過濾器函數和最小聚合。 參見:http://docs.neo4j.org/chunked/milestone/query-function.html
正如Stefan已經說過的,掃描所有節點非常可能相當昂貴。
0
你可以做這樣的查詢:
start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
return p
其中5 IST爲一個循環的最大深度。
請參閱Neo4j console中的示例。然而,使用「節點(*)」會觸發一個全局查詢,它會隨着圖的大小線性縮放。
相關問題
- 1. 獲得root節點屬性
- 2. 顯示所有節點和關係
- 3. 修改節點中的屬性子串和所有子節點
- 4. 如何搜索umbraco的所有節點和所有屬性中的關鍵字
- 5. 如何刪除neo4j中的所有節點和所有關係
- 6. 所有具有屬性的節點
- 7. 得到一個節點的鄰居之間的所有關係
- 8. 如何使用Xpath獲取所有節點屬性和值?
- 9. Cypher,獲取給定標籤的所有節點和關係,但不存在重複,空關係或空節點
- 10. Xpath獲取具有與其他節點匹配的屬性的所有節點
- 11. 如何獲取具有某個屬性的節點的所有子節點?
- 12. 編輯jstree節點的所有屬性
- 13. 獲取所有沒有特定關係的節點
- 14. 獲取Neo4j中沒有特定關係的所有節點
- 15. 彈性搜索中關閉和關閉節點的區別?
- 16. 創建具有相同屬性的節點之間的關係
- 17. 獲得屬性XML子節點的值與在父節點
- 18. Neo4j:節點和關係對象中的屬性
- 19. neo4j節點和關係上允許的屬性是什麼?
- 20. 節點關係和屬性的空間複雜度
- 21. Neo4j的暗號查詢刪除節點和所有子節點和關係
- 22. neo4j添加關係到具有相似屬性的節點
- 23. Neo4j - 基於關係屬性計算並設置節點屬性
- 24. Neo4j - 獲取節點集合以及關係屬性
- 25. SimpleXML節點屬性循環
- 26. 找到節點與集合中所有節點的關係
- 27. 使用neo4jphp獲得與主節點相關的所有節點的數組
- 28. cypher刪除關係數大於數的所有節點關係
- 29. 如何獲得節點的索引節點的數量有特殊屬性值
- 30. 如何將節點與節點的所有屬性分組?
好吧,這對於閉環很好,但最低金額是多少... –
對於閉環我使用start n = node(18)match(n) - >(a) - >(m) - >(s) - >(n)返回n,a,m,s; –