Cypher查询:查找所有子节点都满足特定要求的节点



看看http://console.neo4j.org/?id=xau632

如何编写将返回的Cypher查询:

  • 只有男性孩子的父母(应该只归还约翰)
  • 所有孩子的名字都以"P"开头的父母(应该只返回Betty)

试试这个

MATCH (p:Parent)-[:PARENT_OF]->(c)
WITH p, collect(c) AS children
WHERE ALL (c IN children WHERE c:Son)
RETURN p

你也可以过滤较早的

MATCH (p:Parent)-[:PARENT_OF]->(c)
WITH p, ALL(child IN collect(c) WHERE child:Son) as allSons
WHERE allSons = true
RETURN p

您可以从另一个节点匹配相关节点中的属性,这里有一个示例(以及您要查找的第一个查询的解决方案):

MATCH (p:Parent)-[:PARENT_OF]->(s:Son)
WHERE size((p)-[:PARENT_OF]->(:Daugter))= 0
RETURN DISTINCT (p)

而且,你也可以为第二个做这件事(查看Neo4j在WHERE上的文档)

事实上,你不能只在这里问两个查询,你必须了解如何进行查询,否则你就不会学习密码,这就是为什么我给你举了一个例子和文档来进行第二个查询。

最新更新