我要尽可能多地理解,我写的东西很可能不是我想要做的事情的好方法,在这种情况下,我会很感激一些指向正确方向的指示。
我想要做的是创建一个节点:挂起并创建到每个节点的关系:在一个定义的数组中的每个节点:用户,然后,匹配它的一个节点上基于fb_id创建的关系。在该关系上设置一个属性,并返回第一个节点:用户匹配。
下面的内容做了我想做的一切,但它返回的是具有匹配关系的用户,而不是原来匹配的用户。
如何使它返回原来匹配的用户?(xxxx,zzzz)
CREATE (hang:Hang {})
WITH hang
MATCH (users:User) WHERE users.fb_id IN [xxxx, zzzz]
CREATE (users)-[:member {status: 0}]->(hang)
WITH users, hang
MATCH (users)-[r:member]->(hang) WHERE users.fb_id = xxxx
SET r.founder = 1, r.status = 1
RETURN users
发布于 2014-11-25 11:03:50
我觉得你说得通。我举了个例子。以下是三个用户:
CREATE (:User {fb_id:1234}),
(:User {fb_id:5678}),
(:User {fb_id:9101});
然后,如果您想从用户1234和5678创建一个[member]
关系到H挂,但只为用户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和Hang之间的founder=1
关系上设置status=1
和[member]
。
https://stackoverflow.com/questions/27134337
复制相似问题