【问题标题】:Assign value to relationship in Neo4j在 Neo4j 中为关系赋值
【发布时间】:2018-11-12 12:13:21
【问题描述】:

有没有办法在 Neo4j 中为关系赋值?

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

谢谢。

【问题讨论】:

标签: neo4j graph-databases


【解决方案1】:

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

creating 关系时,您可以添加这样的属性

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);

【讨论】:

  • 这将允许任何一对人之间的独特友谊质量值?
  • 没有。为了让它们对于每个关系都是唯一的,CREATE 需要像 ()-[]->()()<-[]-() 给我几分钟,我会更新答案。
  • @Dreuhn 那应该回答你的两个问题。已发布问题中的一个和评论中的一个。如有更多问题,请开始一个新问题。 StackOverflow 不是一个讨论区,它是用来提问和获得答案的。
【解决方案2】:

如果您还想将值作为关系“朋友”的额外数据,那么您可以输入值作为关系的属性。当您单击关系时,您也会看到值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多