创建唯一的节点和关系

时间:2016-09-28 09:55:42

标签: neo4j cypher

我试图在具有关系的节点上创建唯一属性。问题是,唯一属性仅对标签“B'”而言是唯一的。我需要它也是标签的独特之处' A'。是否可以在许多标签上设置唯一约束?

MATCH (user:A { userId: '57e3c97c6a430242328878ec' })
CREATE UNIQUE (user)-[:KNOWS]-(telephone:B{telephone: '+447735150512'})
RETURN telephone

1 个答案:

答案 0 :(得分:2)

因为属性在标签A和B的节点上应该是唯一的(可能更多?)

现在没有对此的支持,但有一个解决方法,但它需要你的一些维护。

节点可以有多个标签。因此,如果您创建另外应用于多个其他标签的节点的标签(应用于带有标签A和B的节点的超标签C),则可以为该属性在C上创建唯一约束。您必须确保所有A和B节点都另外标有C,但是当它到位时,您将无法使用属性创建新的A或B节点(另外标有C)已在另一个C节点上使用。

这种方法的缺点是,如果您创建A或B节点,但忘记也用C标记它,则不会强制执行唯一约束,因为这只发生在C节点上。

相关问题