繁体   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