Neo4j 如何根据模式验证更新密码查询?
我有一个neo4j数据库,我希望它符合预定义的模式(模型) 此架构具有一些约束,例如标签为Neo4j 如何根据模式验证更新密码查询?,neo4j,cypher,graph-databases,Neo4j,Cypher,Graph Databases,我有一个neo4j数据库,我希望它符合预定义的模式(模型) 此架构具有一些约束,例如标签为x的节点应仅与标签为y且关系类型为r的节点相关。x和y之间不允许存在其他关系。例如,只有标记为:Person的节点可以位于关系的:friend\u的两端,但是标记为:Object的节点不能位于关系的:friend\u的任何一端 另一个约束可以是具有特定标签的节点上允许的属性类型。例如,标签为:Person的节点只能具有属性name和age。不允许有其他属性 因此,我想创建一个方法,该方法接受更新密码查询的输
x
的节点应仅与标签为y
且关系类型为r
的节点相关。x
和y
之间不允许存在其他关系。例如,只有标记为:Person
的节点可以位于关系的:friend\u的两端,但是标记为:Object
的节点不能位于关系的:friend\u的任何一端
另一个约束可以是具有特定标签的节点上允许的属性类型。例如,标签为:Person
的节点只能具有属性name和age。不允许有其他属性
因此,我想创建一个方法,该方法接受更新密码查询的输入,并检查它是否按照现有模式更新数据库。假设模式以JSON或XML格式存在
有人能指导我如何着手解决这个问题吗?我是否应该使用CypherParser解析查询,然后做些什么?您将允许用户对数据库执行任意查询?不,我不会让任何任意查询在我的数据库上运行@JanVandenboschHum。我的第一个想法是得到一个用户界面!第二个想法是,这是一个有趣的问题。我的建议:创建一个虚拟图,然后检查节点上的规则(如果您的查询只是添加内容。或者将所有内容放入主图中,在节点上使用一个标签“unchecked”,然后在Cron批处理中使用此标签(一个自制的过程,将进行检查,然后删除标签).另外,看看APOC用户指南,你可以找到适合你需要的。最终,它可能会节省你使用drools这样的规则引擎的时间,因为规则经常堆积起来。