如何在neo4j中找到满足特定要求的所有节点

时间:2016-08-16 21:50:48

标签: neo4j cypher

我正在尝试自己学习neo4j,我想问一下如何找到满足特定条件的所有节点。具体来说,假设我有一个图表,连接节点的唯一关系是关系:FOLLOWS

如何找到图表中至少 k“粉丝”的所有节点?

如果我想找到具有完全 2个粉丝的所有节点,我会做

MATCH (a)-[:FOLLOWS]->(n), (b)-[:FOLLOWS]->(n)
RETURN n

无论哪种方式,当涉及到找到具有k“粉丝”的所有节点时,上述方法似乎相当繁琐。

1 个答案:

答案 0 :(得分:1)

您将在WHERE子句中使用谓词来添加限制,以缩小到您感兴趣的数据。

您可以使用SIZE()函数找到模式的出现次数。

此外,在节点上使用标签可以帮助加快查询速度。对于此示例,我将假设:Person是节点的标签。

MATCH (p:Person)
WHERE SIZE( (p)<-[:FOLLOWS]-(:Person) ) = 2
RETURN p

您可以使用不等式来满足您的“至少”条件。如果你有条件,你就可以将你的不等式链接起来:

MATCH (p:Person)
WHERE 5 < SIZE( (p)<-[:FOLLOWS]-(:Person) ) <= 10
RETURN p

将为您提供6到10个粉丝(包括6和10)的人。