首页 > 解决方案 > 在 Neo4j 中为关系赋值

问题描述

有没有办法为 Neo4j 中的关系分配值?

假设我有几个“人”节点,人与人之间具有双向关系朋友。如果我想重视友谊的质量怎么办,这可能吗?例如,保罗和爱丽丝是 0.54 个朋友。Alice 是 Chestirecat 的 0.91 个好友。

谢谢。

标签: neo4jgraph-databases

解决方案


在 Neo4j 中,分配给关系的值的通用名称称为property

创建关系时您可以添加这样的属性

CREATE (n:People)-[r:Friends { quality: 5 }]-(m:People)

您还可以使用set更改属性的值

MATCH (m:People{ name: 'Mary' })-[r:Friends]-(m:People{ name: 'John' })
SET r.quality= 6
RETURN n;

要在 Alice 和 Paul 之间创建一个权重为 0.54 的加权友谊,请使用以下 CREATE:

CREATE (n:People { Name: 'Paul' } )-[r:Friends { quality: 0.54 }]->(m:People { Name: 'Alice' });

在此处输入图像描述

当 Alice 节点已经存在且权重为 0.91 时,要在 Alice 和 Paul 之间创建加权友谊,请使用以下 CREATE:

MATCH (n:People { Name: 'Alice' } )  
  CREATE (n)-[r:Friends { quality: 0.91 }]->(m:People { Name: 'Chestirecat' });

在此处输入图像描述

并在 Alice 和 Paul 之间添加 Friends 关系,使用以下 CREATE:

MATCH (n:People { Name: 'Alice' } ), (m:People { Name: 'Paul' })  
  CREATE (n)-[r:Friends { quality: 0.62 }]->(m);

在此处输入图像描述


推荐阅读