Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
neo4j-匹配节点并向其添加关系_Neo4j - Fatal编程技术网

neo4j-匹配节点并向其添加关系

neo4j-匹配节点并向其添加关系,neo4j,Neo4j,如何向cypher查询返回的节点添加关系 我编写了一个查询,返回居住在同一地址的所有姓氏相同的person节点。现在我想在这些person节点之间添加一个关系,以指示它们是同一个人。下面的查询返回3个person节点,我想将第一个节点(由ORDER by返回)与其他2个节点之间的关系添加到一起 MATCH (a:Address) <-[LIVES_AT]-(p:Person) WITH a as addnode, p.surname as psurname, COUNT(p.name_u

如何向cypher查询返回的节点添加关系

我编写了一个查询,返回居住在同一地址的所有姓氏相同的person节点。现在我想在这些person节点之间添加一个关系,以指示它们是同一个人。下面的查询返回3个person节点,我想将第一个节点(由ORDER by返回)与其他2个节点之间的关系添加到一起

MATCH (a:Address) <-[LIVES_AT]-(p:Person)
WITH a as addnode, p.surname as psurname,  COUNT(p.name_urn) as c
WHERE c > 1
MATCH (a2:Address{address_urn:addnode.address_urn})<-[LIVES_AT]-  (p2:Person{surname:psurname})
WITH p2 as p2node
ORDER BY CASE
         WHEN p2node.master_record = 'Y' 
         THEN 
           1
         ELSE
           2
         END
WITH collect(p2node) as colp2node
RETURN colp2node
匹配(a:地址)1

匹配(a2:Address{Address\u urn:addnode.Address\u urn})类似的内容应该适合您:

MATCH (a:Address)<-[LIVES_AT]-(p:Person)
WITH a, p.surname AS psurname, COUNT(p.name_urn) AS c
WHERE c > 1
MATCH (a2:Address { address_urn:a.address_urn })<-[LIVES_AT]-(p2:Person { surname:psurname })
WITH p2
ORDER BY CASE WHEN p2.master_record = 'Y' THEN 1 ELSE 2 END 
WITH collect(p2) AS colp2
WITH colp2[0] AS master, colp2[1..] AS others
UNWIND others AS other
MERGE (master)-[:HAS_ALIAS]->(other);
匹配(a:地址)1
匹配(a2:Address{Address\u urn:a.Address\u urn})(其他);
我使用
MERGE
来避免重复关系


顺便说一句,仅仅因为两个人姓氏相同,住址相同,这通常并不意味着他们是同一个人。我希望你确信你所做的是适当的。

干杯塞伯萨姆做了一件好事。。。是的,只是用姓氏匹配作为测试。。。为评论喝彩:)