neo4j - 即使值不同,也要合并边缘?
问题描述
以下查询将创建 (n1)->(n2) 对。如果节点已经存在,它们将被重用。
match (n1:X),(n2:X) where n1.val = 11 and n2.val = 12
merge (n1)-[x:q {val: 0 }]->(n2)
问题是,如果 x.val 不同的边缘将创建新连接。
有没有办法忽略它?
我想要一个查询,它在第一次调用它时设置值,然后忽略该值......或者我必须有两个不同的查询一个来设置对和第二个 w/o x.val 只会合并?
这似乎可行,但我会听到其他可能性:
on create set x.val = 0.001
解决方案
MERGE
有一个ON CREATE
可以使用的子句:
MATCH (n1:X),(n2:X) WHERE n1.val = 11 and n2.val = 12
MERGE (n1)-[x:q]->(n2)
ON CREATE SET x.val = 0
推荐阅读
- python-3.x - 防止在正则表达式中从组中捕获字符
- c# - 如何将字节数组转换为对象 c# 列表?
- android - 安卓10,唤醒
- angular - Uncaught TypeError: Object(…) is not a function BnNgIdleService in angular?
- python - Python TypeHint 一个根据输入返回不同类型的函数
- r - 如何在R中绘制多个条件的图?
- python - 如何使用 pandas 进一步处理 application/csv 格式的数据
- python - Python ImportError:已满足要求时没有名为请求的模块
- json - Reddit Api 通过 Snoowrap 和 Nextjs + TypeScript
- html - 如何在flutter web中动态更改iframe的src?