Neo4j 密码查询创建多重关系

Neo4j 密码查询创建多重关系,neo4j,cypher,relation,Neo4j,Cypher,Relation,我试图创建一个通用查询来创建节点之间的关系。 问题是当一个匹配失败时,另一个会被忽略。以下查询应创建3个关系。但这不仅仅是2。 非常感谢你的帮助。我是塞弗的初学者 文斯 您可以在所有后续匹配中使用可选匹配,而不是匹配。如果这些查询不存在,您的查询就不会失败。更一般的查询 match (a:Strata {uid: 'strata60'}), b where b.uid in ['x', 'cmCharacteristic'] with a, collect(b) as bs foreach (b

我试图创建一个通用查询来创建节点之间的关系。 问题是当一个匹配失败时,另一个会被忽略。以下查询应创建3个关系。但这不仅仅是2。 非常感谢你的帮助。我是塞弗的初学者 文斯


您可以在所有后续匹配中使用
可选匹配
,而不是
匹配
。如果这些查询不存在,您的查询就不会失败。

更一般的查询

match (a:Strata {uid: 'strata60'}), b where b.uid in ['x', 'cmCharacteristic']
with a, collect(b) as bs
foreach (b in bs | create unique a-[:REL]->b)
这将只匹配给定数组中具有有效
uid
b
节点,并与它们中的每一个创建一个关系,因此如果列表中有无效
uid
则不会失败(它们将被忽略)

如果至少有一个有效的
b
,则将运行查询;否则它将失败,这是正常的,因为无论如何都不应该创建任何关系

match (a:Strata {uid: 'strata60'}), b where b.uid in ['x', 'cmCharacteristic']
with a, collect(b) as bs
foreach (b in bs | create unique a-[:REL]->b)