python - py2neo,neo4j : How to create relation between two existing node

标签 python neo4j py2neo

我正在关注这个 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))

我的图表现在在浏览器中看起来像这样:

enter image description here

或者,您可以在一个 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/

相关文章:

neo4j - Cypher/我应该使用 WITH 子句将值传递给下一个 MATCH 吗?

python - 根据键具有不同名称的值对字典列表进行排序

python - scipy:哪些发行版实现了 "fit"函数?

android - 构建github项目后无法获取neo4j-android-client.jar和neo4j-android-common.jar

Neo4j 密码合并与创建对象属性不匹配

python - 如何使用 Py2Neo 修复 Linux 上的 IncompleteRead 错误

python - 如何检查 py2neo 返回的记录是否为空?

neo4j - py2neo 2.0 : ERROR:httpstream:! SocketError:超时

python - 行在 python csv 阅读器中包含 NULL 字节错误

python - Python 函数返回的奇怪打印输出