Neo4j:可以标记关系吗?

时间:2016-07-20 15:24:33

标签: neo4j

我曾经为节点和关系使用过标签。

根据官方文档labels are reserved to nodes,而properties同时适用于节点和关系。

我觉得很奇怪。我一直使用和查询他们的标签关系,例如

MATCH ()-[r:LabelName]-() return r;

关系实际上可以被贴上标签,就像节点发生的那样,还是存在差异?

1 个答案:

答案 0 :(得分:0)

关系有'类型'不是标签

例如

match (c:contact)-[r]->(l:lead) return Distinct(type(r)) as DistinctRel

会在联系人和潜在客户之间返回“不同关系”类型

╒═══════════╕
│DistinctRel│
╞═══════════╡
│Stakeholder│
├───────────┤
│Influencer │
└───────────┘

是的,您可以使用类似标签的类型来返回已知的关系。

match pth=(c:contact)-[r:Stakeholder]->(l:lead) return pth 

会返回联系人以及他们只与利益相关方建立关系的潜在客户。

与可以具有多个标签的节点不同,关系只能有1个类型。

关系属性会再次变得不同。

match pth=(c:contact {name:'Adrian Dumitrascu'})-[r:Stakeholder]->(l:lead)  set r.property=10

会设置一个名为' property'在名为Adrian的联系人和他的潜在客户之间的利益相关者关系中等于10。

match pth=(c:contact {name:'Adrian Dumitrascu'})-[r:Stakeholder]->(l:lead) return type(r) as Type, r.property

Type         r.property
Stakeholder  10