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

Neo4j 如果违反了约束,如何返回节点,neo4j,Neo4j,我有以下场景:Y的唯一键X。节点如果我尝试使用键X创建另一个节点,希望它与Y建立新关系,而不是创建新节点。 不创建新节点时,使用工具约束。但我不能退 谢谢你的帮助 [编辑以包含评论中的信息] 如果节点已经存在,我需要返回该节点。像这样: MATCH (n:Provider) WHERE (n.UUID = "7223044e46d1b867") MATCH (user:User {Username:"jefersonanjos.8"}) MERGE (node:Test {HashKey:'"6

我有以下场景:Y的唯一键X。节点如果我尝试使用键X创建另一个节点,希望它与Y建立新关系,而不是创建新节点。 不创建新节点时,使用工具约束。但我不能退

谢谢你的帮助

[编辑以包含评论中的信息]


如果节点已经存在,我需要返回该节点。像这样:

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

但此查询不返回
节点

[编辑以反映评论中的新信息]

问题在于,第一个
合并
使用了一个
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;

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


谢谢

如果节点已经存在,我需要返回该节点。链接此链接:在创建集节点上的MATCH(n:Provider)WHERE(n.UUID=“7223044e46d1b867”)MATCH(user:user{Username:“jefersonanjos.8”})MERGE(节点:Test{HashKey:“'6ad6a533a9c1b62704623bd982da434”})在创建集节点上。HashKey=“6a533a533a9c1b627046bd982da434”,node.AuthorImg=packer.CoverUrl,node.AuthorTitle='ok',在匹配集节点上。lastsee='bla'MERGE n-[r:relation{Datecreate:635800177899216771}]>(node)返回node
。但是这个查询没有返回node。我已经用上面的信息更新了你的问题。你确定两个
MATCH
子句都成功了吗?你从这个查询中得到了什么:
MATCH(n:Provider{UUID:“7223044e46d1b867”})MATCH(用户:{Username:“jefersonanjos.8”})返回n,user;
是的,我确定。问题是合并的顺序,上面的查询是正确的。除了这里的双引号外:HashKey:“'6ad6a533a9c1b62704623bd982d1a434”“。谢谢您的帮助!好的,我已经更新了我的答案,以表示我认为正确的解决方案。此外,我还简化了查询,因为您不需要再次设置
哈希键。
。您能否提供有关问题的更多详细信息,并显示修复问题的新查询?这可能会帮助其他人。