首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可选匹配时的Cyper合并

可选匹配时的Cyper合并
EN

Stack Overflow用户
提问于 2019-02-15 04:25:58
回答 1查看 44关注 0票数 0

我正在尝试查看是否存在基于我的可选匹配中的关系的node :Customer。然后,如果我的客户有订单,我希望与他们建立一些关系。我不确定正确的语法是什么。

代码语言:javascript
复制
MERGE (o:Order {account: 'j593jfsh', id: '35353'})
OPTIONAL MATCH (c:Customer)-[:HAS_ORDER]->(o)
MERGE (c)-[:HAS_SESSION]->(s)
MERGE (c)-[:HAS_ORDER]->(o)
WHERE c IS NOT NULL"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-15 04:35:49

可以这样做的一种方法是使用pattern comprehension代替可选的匹配。这将把所有有订单的客户收集到一个列表中,然后您可以使用FOREACH来合并关系。如果没有客户,列表将为空,并且FOREACH将没有要处理的内容。

代码语言:javascript
复制
...
MERGE (o:Order {account: 'j593jfsh', id: '35353'})
WITH o, s, [(c:Customer)-[:HAS_ORDER]->(o) | c] as customers
FOREACH (c in customers | 
 MERGE (c)-[:HAS_SESSION]->(s)
 MERGE (c)-[:HAS_ORDER]->(o)
)
...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54698538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档