Я добавляю ограничения в базу данных neo4j, используя ограничения Cypher, и хочу создать ограничение, которое применяется только к подмножеству типа узла.
Я могу создать ограничение, в котором должно существовать поле 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?
Заранее спасибо!