Neo4J对多个标签的唯一约束

时间:2016-08-25 21:13:11

标签: neo4j cypher

我有一组带有多个标签(A,B,C)的节点。所有节点都具有公共属性,该属性在所有标签中都是唯一的。但是,在创建唯一约束时,它仅限于一个标签,不是吗?

文档说的是:

CREATE CONSTRAINT ON (n:A) ASSERT n.uid IS UNIQUE

但我想做一些像

这样的事情

CREATE CONSTRAINT ON (n:A AND n:B AND n:C) ASSERT n.uid IS UNIQUE

CREATE CONSTRAINT ON (n) ASSERT n.uid IS UNIQUE

如果不可能,最好是创建标签D,并将其添加到标签为A,B和C的所有节点,然后为标签D创建约束?

1 个答案:

答案 0 :(得分:3)

您的建议正是我在类似案例中使用的建议。我创建了一个标签,用于包含另外两个标签,并在新标签上添加了约束(除了其他标签之外)。

除了使用子标签创建的任何新节点之外,唯一的技巧是记住应用该标签。

对于适用于多个标签的约束进行neo4j功能请求并不是一个坏主意,这会非常有用。