Neo4J对多个标签的唯一约束

nar*_*esk 5 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创建约束?

Inv*_*con 5

你的建议正是我在类似情况下使用的。我创建了一个旨在包含其他两个标签的标签,并添加了对新标签(以及其他标签)的约束。

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

对适用于多个标签的约束提出 Neo4j 功能请求并不是一个坏主意,这将非常有用。