Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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 Cypher,如何在不破坏原始结果的情况下对结果使用匹配_Neo4j_Cypher - Fatal编程技术网

Neo4j Cypher,如何在不破坏原始结果的情况下对结果使用匹配

Neo4j Cypher,如何在不破坏原始结果的情况下对结果使用匹配,neo4j,cypher,Neo4j,Cypher,我会尽可能地讲清楚,我所写的也很可能不是我想做的事情的好方法,在这种情况下,我希望有一些正确方向的建议 我要做的是创建一个node:Hang并创建与定义数组中的每个node:User的关系,然后根据其中一个节点上的fb_id匹配一个创建的关系。设置该关系的属性并返回第一个节点:User i matched 下面的内容满足了我的所有要求,但它返回的是具有匹配关系的用户,而不是我最初匹配的用户 如何使其返回原始匹配的用户?(xxxx,zzzz) 我觉得你说得通。我举了个例子。以下是三个用户: CRE

我会尽可能地讲清楚,我所写的也很可能不是我想做的事情的好方法,在这种情况下,我希望有一些正确方向的建议

我要做的是创建一个node:Hang并创建与定义数组中的每个node:User的关系,然后根据其中一个节点上的fb_id匹配一个创建的关系。设置该关系的属性并返回第一个节点:User i matched

下面的内容满足了我的所有要求,但它返回的是具有匹配关系的用户,而不是我最初匹配的用户

如何使其返回原始匹配的用户?(xxxx,zzzz)


我觉得你说得通。我举了个例子。以下是三个用户:

CREATE (:User {fb_id:1234}),
       (:User {fb_id:5678}),
       (:User {fb_id:9101});
然后,如果要从用户1234和5678创建一个要挂起的
[member]
关系,但仅为用户1234设置
founder=1
status=1
,同时仍返回两个用户:

CREATE (hang:Hang {name:'Some Hang'})
WITH hang
MATCH (users:User) WHERE users.fb_id IN [1234, 5678]
CREATE (users)-[r:member]->(hang)
SET r.founder = CASE WHEN users.fb_id = 1234 THEN 1 ELSE 0 END,
    r.status = CASE WHEN users.fb_id = 1234 THEN 1 ELSE 0 END
RETURN users;

这将最终返回用户1234和5678,但仅在用户1234和挂起之间的
[member]
关系上设置
founder=1
status=1

Nice!我在考虑一个条件集,但不太确定如何使它像你做的那样整洁。这正是我想要的方法。多谢各位
CREATE (hang:Hang {name:'Some Hang'})
WITH hang
MATCH (users:User) WHERE users.fb_id IN [1234, 5678]
CREATE (users)-[r:member]->(hang)
SET r.founder = CASE WHEN users.fb_id = 1234 THEN 1 ELSE 0 END,
    r.status = CASE WHEN users.fb_id = 1234 THEN 1 ELSE 0 END
RETURN users;