如何查找不相关的类型(在单向有向图中)

时间:2017-09-07 13:15:59

标签: neo4j cypher

我需要找到某个类别的节点,这些节点与另一个类别的节点无关。 例如,如果节点是PEOPLE并且关系是知道的,那么我想要找到所有来自英国的不认识法国人的人。

我尝试过这样的事情:

match(a:People {Country: "England"})
match(b:People {Country: "France"})
where NOT (a)-[:REFERENCES]->(b)
RETURN count(a)

然而,这是(我相信)返回笛卡尔积,因为返回的数字比数据库中的人数多许多倍。

我该如何重写查询?

1 个答案:

答案 0 :(得分:1)

应该这样做......

MATCH (pe:People {country: "England"})
WHERE NOT (pe)-[:REFERENCES]->(:People {country: "France"})
RETURN COUNT(DISTINCT pe);

希望这有帮助。

此致 汤姆