我在想,我们如何防止用户/开发人员添加不需要的节点/关系/属性?如何在nodejs中为neo4j图形数据库创建模式?
我读到的是 - 我们应该在应用程序级强加这些模式。那么,我们如何在Node.js中做到这一点?
有没有这方面的例子?或者有人可以在这里发布一些代码?
我在想,我们如何防止用户/开发人员添加不需要的节点/关系/属性?如何在nodejs中为neo4j图形数据库创建模式?
我读到的是 - 我们应该在应用程序级强加这些模式。那么,我们如何在Node.js中做到这一点?
有没有这方面的例子?或者有人可以在这里发布一些代码?
这取决于您的应用程序如何工作。
您可以在应用程序中创建自己的验证,但它取决于应用程序的类型。
更好的选择是为Neo4j创建您自己的非托管扩展。您可以使用交易事件API为 - http://graphaware.com/neo4j/transactions/2014/07/11/neo4j-transaction-event-api.html
GraphAware提供有偿扩展执法的模式 - http://graphaware.com/enterprise/
Neo4j的支持一些有限的模式执行。具体做法是:
Uniqueness constraints.指定充当唯一ID的节点与给定的标签的节点属性。试图违反约束的事务将被回滚。唯一性约束使用此语法在Cypher支架创建:
CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE
Property existence constraints.此约束确保定标签的所有节点包含指定的属性。任何不指定给定属性的create语句都会回滚。物业存在约束可以由与此语法创建的:
CREATE CONSTRAINT ON (book:Book) ASSERT exists(book.isbn)
注意财产存在约束在Neo4j的2.3新,并且只能在Neo4j的企业。