如何在Neo4j的一个结果中返回用户和朋友?

时间:2014-03-08 03:59:14

标签: neo4j cypher

我有这样的查询:

MATCH (U:User)-[S:Shout]->(P:Post)<-[H:Has]-(FU:User)-[FS:Shout]->(FP:Post)
WHERE FU.user_id=2
return U.username, P.post, FU.username, FP.post

上面的查询将返回如下结果:

U.username  P.post  FU.username FP.post
rio         lala    murey       nana
rio         lala    murey       hi
rio         hanson  murey       nana
rio         hanson  murey       hi

但我希望返回结果:

U.username  P.post
murey       hi
rio         hanson
murey       nana
rio         lala

以上我想要的结果按post_id desc

排序

有没有办法像我想要的那样返回结果?

请帮忙。 感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Union

MATCH (FU:User {user_id: 2})-[FS:Shout]->(FP:Post)
RETURN FU.username as name, FP.post as post
UNION
MATCH 
(U:User)-[S:Shout]->(P:Post)<-[H:Has]-(FU:User {user_id: 2})
return U.username as name, P.post as post

Union不支持对整个结果进行排序 - 也许您可以在应用程序中进行排序。