目前是否可以在redis-graph中进行匹配交集查询?

问题描述 投票:1回答:1

鉴于当前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
redisgraph
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.