我想在neo4j中共享屬性的節點之間創建邊。 每個節點有5個屬性,分別是a,b,c,d,e。如果2個節點僅共享屬性'a',則邊緣將具有名稱'a'。如果2個節點共享屬性b,d,e,則邊緣將具有'bde'的名稱。對於每一對,如果它們共享屬性,那麼我只想創建一條邊。 謝謝。如何在neo4j中的節點間創建條件邊緣?
0
A
回答
2
此查詢應該創建與具有(任何屬性值即份額)每對節點之間的相同值的屬性的name
一個FOO
關係:
MATCH (m), (n)
WHERE ID(m) < ID(n)
WITH m, n, [x IN KEYS(m) WHERE m[x] = n[x] | x] AS common_keys
FOREACH (k IN common_keys | CREATE (m)-[:FOO {name: k}]->(m))
的WHERE ID(m) < ID(n)
子句防止m
和n
從是同一個節點,並且還可以防止對同一對的重複評估。
[更新]
如果你只想要2個節點之間的單一FOO
關係,即使它們共享多個屬性值,那麼這個查詢應該工作:
MATCH (m), (n)
WHERE ID(m) < ID(n)
WITH m, n,
REDUCE(s = '', k IN KEYS(m) | CASE m[k] WHEN n[k] THEN s + k ELSE s END) AS common_keys
WHERE common_keys <> ''
CREATE (m)-[:FOO {name: common_keys}]->(m)
相關問題
- 1. Neo4j的創建邊緣
- 2. 如何在節點之間創建多個加權邊緣
- 3. 如何在Gremlin中使用公共節點創建新邊緣?
- 4. Python:如何從csv文件創建圖形節點和邊緣?
- 5. 如何在Neo4j中創建每個節點的時間軸
- 6. 在Neo4j節點之間創建關係
- 7. Neo4j創建節點
- 8. 在Python/R中創建節點邊緣三角形鄰接圖
- 9. networkx邊緣到節點節點到邊緣的表示
- 10. neo4j中每個節點和每個邊緣的單獨條目是多少?
- 11. Graphviz - 節點之間的水平邊緣
- 12. Python - 如何在ArangoDB中創建邊緣
- 13. 如何在java swing GUI中創建可移動的節點和邊緣?
- 14. 如何讓節點間隔出來縮短GraphViz中的邊緣?
- 15. 在OrientDB中創建邊緣
- 16. 創建的節點中犯規的Neo4j
- 17. 如何在neo4j中通過時間戳來過濾邊緣?
- 18. 在graphviz中從節點到邊緣繪製邊緣
- 19. 如何在Neo4j中獲取或創建獨特的子節點
- 20. 如何獲得在neo4j中創建的最後一個節點?
- 21. 如何使用插件添加cytoscape.js中的節點和邊緣?
- 22. 如何在mxGraph邊緣創建圖像
- 23. 如何在neo4j中的標籤下分組節點之間創建關係?
- 24. 如何獲得兩個節點之間的邊緣?
- 25. 的Neo4j如何返回由邊緣
- 26. Neo4j/Cypher創建節點如果丟失
- 27. 加快邊緣的創建基於節點
- 28. OrientDB創建兩個節點之間的邊緣,每年的同一天
- 29. 如何獲得Neo4J中某些節點下游的所有節點/邊緣的計數
- 30. d3邊緣重疊節點
有一些信息會幫助回答你的問題。 1.邊緣名稱,你的意思是邊緣的「類型」? 2.如果是這樣,你可以使用[APOC庫](https://neo4j-contrib.github.io/neo4j-apoc-procedures/)嗎? –