我已经在Neo中使用Neo4jClient创建了许多节点,我的意思是在单个事务中。 现在想要在它们之间创建不同的关系。我知道左边的节点,右边的节点以及它们之间的关系。但它的列表不是单一的关系。
我找不到在单个事务中在多个现有节点之间创建多个关系的方法。
我很震惊。如果有任何解决方案,请帮助我。
答案 0 :(得分:1)
假设我们将3个节点定义为:CREATE (a:A), (b:B), (c:C)
然后,根据您一次尝试创建的关系数量以及它们的组织方式,我可以提出两种可能的选择:
如果您可以将关系列出为单个不间断的合并表达式(合并语法目前不允许多个模式),您可以轻松创建多个这样的关系:
MATCH (a:A), (b:B), (c:C)
MERGE (a)-[:REL1]->(b)-[:REL2]->(c)-[:REL3]->(a)
否则,如果结构过于复杂而无法以这种方式写出,则可以使用:
MATCH (a:A), (b:B), (c:C)
MERGE (a)-[:REL1]->(b)
MERGE (b)-[:REL2]->(c)
MERGE (c)-[:REL3]->(a)
最后,我想值得注意的是,如果您正在使用服务器的事务端点,那么即使将它们分成单独的语句,它们仍会以原子方式运行,尽管您当然是&# 39; d可能会导致多个MATCH
条款的惩罚,因此表现可能会更差。