如何在一个事务中的不同节点之间添加多个关系

时间:2015-01-07 09:52:05

标签: c# neo4j neo4jclient

我已经在Neo中使用Neo4jClient创建了许多节点,我的意思是在单个事务中。 现在想要在它们之间创建不同的关系。我知道左边的节点,右边的节点以及它们之间的关系。但它的列表不是单一的关系。

我找不到在单个事务中在多个现有节点之间创建多个关系的方法。

我很震惊。如果有任何解决方案,请帮助我。

1 个答案:

答案 0 :(得分:1)

假设我们将3个节点定义为:CREATE (a:A), (b:B), (c:C)

然后,根据您一次尝试创建的关系数量以及它们的组织方式,我可以提出两种可能的选择:

  1. 如果您可以将关系列出为单个不间断的合并表达式(合并语法目前不允许多个模式),您可以轻松创建多个这样的关系:

    MATCH (a:A), (b:B), (c:C) MERGE (a)-[:REL1]->(b)-[:REL2]->(c)-[:REL3]->(a)

  2. 否则,如果结构过于复杂而无法以这种方式写出,则可以使用:

    MATCH (a:A), (b:B), (c:C) MERGE (a)-[:REL1]->(b) MERGE (b)-[:REL2]->(c) MERGE (c)-[:REL3]->(a)

  3. 最后,我想值得注意的是,如果您正在使用服务器的事务端点,那么即使将它们分成单独的语句,它们仍会以原子方式运行,尽管您当然是&# 39; d可能会导致多个MATCH条款的惩罚,因此表现可能会更差。