【发布时间】:2017-02-14 16:34:23
【问题描述】:
我一直在尝试根据节点查询获取子图。 只要子图中的所有节点都连接,查询就应该忽略关系方向: 前任: u1-朋友-> u2-朋友-> u3 u4 -FRIEND-> u5 -FRIEND-> u6
搜索 u1 或 u2 或 u3,应返回一组:[u1,u2,u3]
我使用了以下 Cypher 查询:
MATCH (a:User)-[:FRIEND_OF*0..]-(b)
WHERE a.userId = 'some_id'
WITH a, collect(DISTINCT b) AS sets
RETURN DISTINCT sets
问题是我得到了所有集合的排列,例如:
DATA: u1 -FRIEND-> u2 -FRIEND-> u3
RETURN: [u1,u2,u3],[u1,u3,u2],[u2,u1,u3]...
如何区分不同的集合以仅返回一个排列?
我也想支持一个用户可以在不同子图中的情况,因此响应应该是几个子图。
谢谢
【问题讨论】: