我试图了解如何使用neo4j作为db来组织我的节点api代码。我正在使用neo4j-javascript-driver。
我正在尝试在某些用户字段上创建约束。但我不知道在哪里放置代码。因为这些创建约束语句应该只运行一次。我想过在neo4j UI上手动运行语句,你可以运行语句,但如果我去生产,我可能不想再次运行语句。
我的代码:
session
.run("CREATE CONSTRAINT ON (user:USER) ASSERT user.email IS UNIQUE")
.then((result) => {
console.log("neo4j constraints successful");
neoSession.close();
})
.catch((error) => {
console.log("constraint.js error : ",error);
});
答案 0 :(得分:3)
您可以考虑在部署过程中运行这些约束查询。你是如何部署Neo4j的?如果您以某种自动方式(例如Ansible或Docker)执行此操作,则可以使用包含所有这些Cypher约束查询的Cypher脚本文件,并在使用neo4j-shell
成功启动Neo4j后运行此脚本。
或者,您可以在每次启动应用程序时简单地运行这些语句。如果约束已经存在,则再次运行语句实际上没有任何损害。