我正在关注这个 tutorial使用 python 访问 neo4j 数据库。根据本教程,我在 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)
)
输出是一样的。希望这会有所帮助。
关于python - py2neo,neo4j : How to create relation between two existing node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23428439/