当前是否可以在redis-graph中进行相交查询?

时间:2019-03-09 12:13:20

标签: redisgraph

在当前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

1 个答案:

答案 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