如果违反了约束,如何返回节点

时间:2015-10-09 20:00:25

标签: neo4j

我有以下场景: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

2 个答案:

答案 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)

我发现错误,问题是合并的顺序。

由于

相关问题