是否存在一种内置方式来过滤朋友类型查询的朋友中的连接节点

时间:2014-08-06 21:58:09

标签: neo4j cypher

假设我们有一个社交网络,并且想要找到一个当前没有连接的朋友的朋友。我假设我们可以做类似的事情:

match (me)-[:Friends_With]-(other)-[:Friends_With]-(target)
where not (target-[:Friends_With]-me)
return target

据我所知,Neo不会在me中加入target,但它会包含目前通过[:Friends_with]连接到我的节点。假设我的第一个查询有效,那么编写此查询是否有一种不那么冗长的方式?

1 个答案:

答案 0 :(得分:1)

MATCH (me:Person { name: "Kenny" })-[:FRIEND_OF]-()-[:FRIEND_OF]-(foaf:Person)
WHERE NOT (me)-[:FRIEND_OF]-(foaf)
RETURN foaf

这是查找朋友的朋友最不详细但最具表现力的查询,我不是他的朋友。