簡體   English   中英

py2neo,neo4j:如何在兩個現有節點之間建立關系

[英]py2neo, neo4j: How to create relation between two existing node

我正在按照本教程使用python訪問neo4j db。 根據這個教程,我在4個節點之間創建了2個關系。 代碼如下

alice, bob, rel = graph_db.create(
                      {"name": "Alice"}, {"name": "Bob"},
                      (0, "KNOWS", 1))
dev, carol, rel = graph_db.create(
                      {"name": "Dev"}, {"name": "Carol Smith"},
                      (0, "KNOWS", 1))

如何在不創建新節點的情況下創建alice和carol之間的關系?

下面的代碼片段在該教程中給出,用於創建現有節點之間的關系。 在上面的例子中不確定如何使用它。

ref_node = graph_db.get_reference_node()
alice, rel = graph_db.create(
                {"name": "Alice"}, (ref_node, "PERSON", 0))

當我嘗試執行時

ref_node = graph_db.get_reference_node()

我收到以下錯誤。

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'GraphDatabaseService' object has no attribute 'get_reference_node'

有什么建議可以解決這個問題嗎?

我嘗試了以下內容並得到了我認為你想要的結果:

from py2neo import neo4j, node, rel

graph = neo4j.GraphDatabaseService("http://localhost:7474/db/data/")

alice, = graph.create(node(name="Alice")) # Comma unpacks length-1 tuple.
bob, = graph.create(node(name="Bob"))
carol, = graph.create(node(name="Carol Smith"))
dev, = graph.create(node(name="Dev"))

graph.create(rel(alice, "KNOWS", bob))
graph.create(rel(dev, "KNOWS", carol))
graph.create(rel(alice, "KNOWS", carol))

我的圖表現在在瀏覽器中顯示如下:

在此輸入圖像描述

或者,您可以在一個graph.create()語句中創建圖形:

from py2neo import neo4j, node, rel

graph = neo4j.GraphDatabaseService("http://localhost:7474/db/data/")

graph.create(
    node(name="Alice"),       #0
    node(name="Bob"),         #1
    node(name="Carol Smith"), #2
    node(name="Dev"),         #3
    rel(0, "KNOWS", 1),
    rel(3, "KNOWS", 2),
    rel(0, "KNOWS", 2)
)

輸出是一樣的。 希望這可以幫助。

參考節點是早期版本的Neo4j中包含的功能,並且擴展名為py2neo。 它已經被棄用和刪除所以我也應該從py2neo文檔中刪除所有痕跡 - 看來我錯過了一個!

感謝您指出這一點,我將為自己添加一項任務,以使此頁面更新。

在建立關系方面,妮可的答案是現場,並且應該擁有您需要的所有信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM