在当前Cypher限制下,当前是否可以在RedisGraph中查询匹配的相交点?
例如,与以下Cypher脚本等效的东西将返回Mor Yesharim和Noam Nativ都访问过的国家:
MATCH (p:Person)-[x:VISITED]->(c:Country)
WHERE p.name = 'Mor Yesharim' OR p.name = 'Noam Nativ'
WITH c, count(DISTINCT p) as cnt
WHERE cnt = 2
RETURN c
答案 0 :(得分:3)
您提供的示例可以用单个模式重写,如下所示:
MATCH (p:Person)-[:VISITED]->(c:Country)<-[:VISITED]-(q:person)
WHERE p.name = 'Mor Yesharim' AND q.name = 'Noam Nativ'
RETURN c
但是,这不适用于更复杂的模式(例如,如果Country
的度数大于2,则不可行)。在这些情况下,您可以结合使用WITH
和ID匹配:
MATCH (p:Person)-[:VISITED]->(c:Country)
WHERE p.name = 'Mor Yesharim' WITH c AS first
MATCH (q:Person)-[:VISITED]->(d:Country)
WHERE q.name = 'Noam Nativ'
AND ID(first) = ID(d)
RETURN d