Neo4j/Cypher:密码查询中存在多个匹配问题

Neo4j/Cypher:密码查询中存在多个匹配问题,neo4j,match,cypher,Neo4j,Match,Cypher,密码查询和多重匹配有些东西我不懂 上下文: 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_

密码查询和多重匹配有些东西我不懂

上下文:

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
目标=节点(2145)=应用程序上的视频游戏

me=节点(2570)=用户已登录

我正在尝试获取与给定目标交互的所有用户(包括我)。 此外,我想这些用户之间的距离订购他们和我

i、 e.目标是显示与视频游戏交互的用户:首先是我和我的朋友,然后是其他人

我的查询:

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
START target=node(2145),me=node(2570)

MATCH(target)-[:INTERACTIONS]->()-[?:是*0..3]-()在您的实验中,第二个模式匹配与“Start”一起正常工作。所以你可以把第二个匹配和第一个匹配组合成这样的连词

START target=node(2145), me=node(2570)
MATCH (target)-[:INTERACTIONS]->()<-[:IS_TARGET_OF]-(interactions)<-[:IS_SOURCE_OF]-()<-[:INTERACTIONS]-(users), p = (users)-[:CONTACTS]->()-[?:IS_FRIEND_WITH*0..3]-()<-[:CONTACTS]-(me)
RETURN users, MIN(LENGTH(p)) as conn
ORDER BY conn ASC  
START target=node(2145),me=node(2570)

MATCH(target)-[:INTERACTIONS]->()非常感谢Lisa,我使用了您的查询,它结合了第二个匹配和第一个匹配,这非常有效。再一次,你的解释很清楚,谢谢!