我已经看到过有关重复的前一个主题,但这里的用例有点不同。 我正在管理部件组件,如物料清单。每个节点应该是可验证的。我想通过复制节点和每个关系到这个节点来处理这个版本。 这会创建很多节点和关系,但这是我认为管理这个的唯一方法。 cypher运行这个最简单的方法是什么?创建重复节点和关系来处理Neo4j中的版本控制
我见过如何创建节点,现在我需要复制关系。
我已经看到过有关重复的前一个主题,但这里的用例有点不同。 我正在管理部件组件,如物料清单。每个节点应该是可验证的。我想通过复制节点和每个关系到这个节点来处理这个版本。 这会创建很多节点和关系,但这是我认为管理这个的唯一方法。 cypher运行这个最简单的方法是什么?创建重复节点和关系来处理Neo4j中的版本控制
我见过如何创建节点,现在我需要复制关系。
你一定想用某种编程语言来做到这一点。但这里有一个小小的例子,所以你可以开始尝试。我最近做了类似的事情。有一点需要注意的是,由于您使用基本相同的数据创建相同对象的新版本,因此对唯一性约束有一些限制。在你的情况下,你可能有许多唯一键可供选择。我的数据有点模糊。我最终为每个新版本创建了一个新标签,并且我为label
版本在name
上添加了唯一性约束。然后我在数据库中索引了name
。 That suggestion was courtesy of Michael Hunger
// match 2 specific nodes of a particular version and their relationship
match (a:Node)-[r1:ASSEMBLED_WITH]-(b:Node)
where a.name = 'Node 1' and a.version = 1
and b.name = 'Node 2' and b.version = 1
// create copies of the nodes and change the relationship
create (c:Node) set c = a, c.version = 3
create (d:Node) set d = b, d.version = 3
//create a copy of the relationship and change the version of it
create (c)-[r2:ASSEMBLED_WITH]->(d) set r2 = r1, r2.version = 3
我会探讨这个!谢谢 – 2014-12-11 14:58:04
你是指从java或cypher? – 2014-12-06 02:14:24
可能来自密码,但我很满意补充编程解决方案(我使用PHP发送密码查询)。 – 2014-12-11 14:57:00