eac*_*one 2 python neo4j py2neo
我正在启动neo4j,并且正在使用python3.5 和py2neo。
我用以下代码构建了两个图形节点。并成功创建。[!
>>> u1 = Node("Person",name='Tom',id=1)
>>> u2 = Node('Person', name='Jerry', id=2)
>>> graph.create(u1,u2)
Run Code Online (Sandbox Code Playgroud)
之后,我将在'Tom'和'Jerry'之间建立关系,Tom的id属性为1,Jerry的id属性为2。
所以。我想,我必须使用 id 属性指向现有的两个节点。然后我尝试创建如下关系。
>>> u1 = Node("Person",id=1)
>>> u2 = Node("Person",id=2)
>>> u1_knows_u2=Relationship(u1, 'KKNOWS', u2)
>>> graph.create(u1_knows_u2)
Run Code Online (Sandbox Code Playgroud)
以上成功执行。但图表有些奇怪。
我不知道为什么会创建未知的图节点。以及为什么在未知的两个节点之间创建关系。
您可以有两个具有相同标签和相同属性的节点。您获得的第二个节点与u1 = Node("Person",id=1)您之前创建的节点不同。这是一个具有相同标签/属性的新节点。
当您定义两个节点(即您的 newu1和u2)并在它们之间创建关系时,将创建整个模式。
要获取两个节点并在它们之间创建关系,您可以执行以下操作:
# create Tom and Jerry as before
u1 = Node("Person",name='Tom',id=1)
u2 = Node('Person', name='Jerry', id=2)
graph.create(u1,u2)
# either use u1 and u2 directly
u1_knows_u2 = Relationship(u1, 'KKNOWS', u2)
graph.create(u1_knows_u2)
# or find existing nodes and create a relationship between them
existing_u1 = graph.find_one('Person', property_key='id', property_value=1)
existing_u2 = graph.find_one('Person', property_key='id', property_value=2)
existing_u1_knows_u2 = Relationship(existing_u1, 'KKNOWS', existing_u2)
graph.create(existing_u1_knows_u2)
Run Code Online (Sandbox Code Playgroud)
find_one()假设您的id属性是唯一的。
| 归档时间: |
|
| 查看次数: |
5757 次 |
| 最近记录: |