我想在尽可能少的请求中捆绑一大堆操作。背后的逻辑应该是这样的:
- 检查带有 key=value 的头部是否存在,如果不存在则创建
- 检查是否存在带有 key=value 的尾部,如果不存在则创建
- 创建独特的关系(各种属性)
- 为 head & tail 设置一堆属性
我已经偶然发现create unique,但这似乎只适用于关系。如何确保至少存在头节点,以便我可以在其上运行创建唯一语句?
我现在正在做的是触发多个请求。第一个找出节点是否存在:
start x=node:index({key}={value}) return ID(x) as id
如果没有返回 id,我会发出另一个请求来创建节点,最后发出最终请求来创建第二个节点和关系:
start n=node({id})
create unique n-[:POINTS_TO {label:{label}}]->(x {{key}:{value}})
return n,x
我想知道是否有更好的方法来捆绑所有这些......