2016-11-22 117 views
0

我使用社区版本Neo4J作为我的图形数据库。我想在图形重建时防止重复数据的重写。防止在Neo4J图形数据库中覆盖数据

例如: 假设我的代码从关系数据库中获取一些数据并创建Neo4J图。今天构建的图形的大小是1 GB。第二天,当我再次构建图形时,其大小变为2.1 GB,但只有0.1 GB是我的关系数据库中新增的数据。

为什么Neo4J会再次创建已存在的节点?

是否Neo4J有一些智能来识别新的数据并只创建新的节点并防止重新构建已存在的节点?

回答

1

您正在寻找MERGE。您应该阅读the whole chapter on Cypher以了解其功能。

+0

还有一个'CREATE UNIQUE'命令,但我从来没有用过 - 'MERGE'对我来说工作正常。也看看'CREATE CONSTRAINT' ... –

+0

@Frank谢谢,我在上面。我也看到这个http://stackoverflow.com/questions/25177788/neo4j-cypher-update-existing-node-or-create-new-node,发现非常接近我的查询。 – Kabhi