我有以下场景:Y节点的唯一键X如果我尝试使用键X创建另一个节点,则希望它与Y建立新关系,而不是创建新节点。 不创建新节点,utilizer约束。但是我无法退货。
感谢您的帮助。
[已编辑包含评论信息]
如果已经存在,我需要返回节点。像这样:
MATCH (n:Provider)
WHERE (n.UUID = "7223044e46d1b867")
MATCH (user:User {Username:"jefersonanjos.8"})
MERGE (node:Test {HashKey:'"6ad6a533a9c1b62704623bd982d1a434"'})
ON CREATE SET node.HashKey="6ad6a533a9c1b62704623bd982d1a434", node.AuthorImg=packer.CoverUrl, node.AuthorTitle='ok'
ON MATCH SET node.lastsee='bla'
MERGE n-[r:relation {Datecreate:635800177899216771}]->(node)
return node
但此查询不会返回node
。
答案 0 :(得分:1)
[已编辑以反映评论中的新信息]
问题是第一个MERGE
使用HashKey
属性将值包装在单引号和双引号中,导致它始终创建新节点而不是查找现有节点:
MERGE (node:Test {HashKey:'"6ad6a533a9c1b62704623bd982d1a434"'})
修复该问题并简化一点(以避免再次设置HashKey
),以下内容应该有效:
MATCH (n:Provider)
WHERE (n.UUID = "7223044e46d1b867")
MATCH (user:User {Username:"jefersonanjos.8"})
MERGE (node:Test {HashKey:"6ad6a533a9c1b62704623bd982d1a434"})
ON CREATE SET node.AuthorImg=packer.CoverUrl, node.AuthorTitle='ok'
ON MATCH SET node.lastsee='bla'
MERGE n-[r:relation {Datecreate:635800177899216771}]->(node)
return node;
答案 1 :(得分:0)
我发现错误,问题是合并的顺序。
由于