【发布时间】:2020-05-29 14:43:18
【问题描述】:
我正在使用 Cypher 约束向 neo4j 数据库添加约束,并希望创建一个仅适用于节点类型子集的约束。
我可以使用
创建一个约束,即foo 字段必须存在于 Entity 上
CREATE CONSTRAINT ON (e:Entity) ASSERT EXISTS (e.foo)
但相反,我只想限制具有给定字段的节点。例如
CREATE CONSTRAINT ON (e:Entity {constrain_flag:true) ASSERT EXISTS (e.foo)
例如,我可能有两个类似的节点
(e:Entity { foo: 'bar' , constrain_flag: true }) 和
(e:Entity { constrain_flag: false })
我只希望e.foo 必须存在的约束应用于Entity 其中constrain_flag = true,所以这两个都应该被允许。然而,
(e:Entity { constrain_flag: false }) 应该抛出异常。
目前有没有办法用 cypher 和 neo4j 做到这一点?
提前致谢!
【问题讨论】:
标签: neo4j cypher constraints