密码查询和多重匹配我没有得到一些东西。
语境 :
目标=节点(2145)=应用程序上的视频游戏
我=节点(2570)=用户登录
我试图让所有与给定目标交互的用户(包括我)。此外,我希望这些用户按他们和我之间的距离排序......
即目标是显示与视频游戏交互的用户:首先是我和我的朋友,然后是其他人。
我的查询:
START target=node(2145), me=node(2570)
MATCH (target)-[:INTERACTIONS]->()<-[:IS_TARGET_OF]-(interactions)<-[:IS_SOURCE_OF]-()<-[:INTERACTIONS]-(users)
WITH me, users
MATCH p = (users)-[:CONTACTS]->()-[?:IS_FRIEND_WITH*0..3]-()<-[:CONTACTS]-(me)
RETURN users, MIN(LENGTH(p)) as conn
ORDER BY conn ASC
问题 :
考虑到我是唯一与目标交互的人,我应该得到一个结果:2570。
我遇到的问题是我在返回的用户中看不到“我”:查询不返回任何内容
我尝试了什么:
- 如果我在第一场比赛后立即返回,我会得到一个结果:2570。
如果在第二场比赛中,我尝试 p = (users)-[*0..3]-(me),我也会得到一个结果:2570。
如果我只使用查询的第二部分来尝试以下操作:
START me=node(2570), users=node(2570, 2802) MATCH p = me-[:CONTACTS]->()-[?:IS_FRIEND_WITH*0..3]-()<-[:CONTACTS]-(users) RETURN users, MIN(LENGTH(p)) as conn ORDER BY conn ASC
我得到 2570 和 2802(因为他是我的朋友)。
我确定我在这里做错了什么,但我看不到什么..你知道我该如何解决我的问题吗?
谢谢,