密码检索节点匹配集合中的所有节点

时间:2018-07-19 18:36:20

标签: neo4j cypher

我试图返回与连接到我的起始节点的集合中的所有节点匹配的节点。举一个最小的例子,假设我有Bob 43 Colorado, USA 的{​​{1}}和几个国家的Record。用户执行GDPPopulation的{​​{1}}。我想返回所有Query日本 FILTERS_BY Country=Japan GDP的记录。

最小图形可以构造如下:

DataType = GDP

这将产生如下图所示: Mouse.Capture()

我需要编写一个查询,该查询返回GROUPED_BYGROUPED_BY均为CREATE (r1:Record {name: "China GDP"}), (r2:Record {name: "China Population"}), (r3:Record {name: "Japan GDP"}), (r4:Record {name: "Japan Population"}), (c1:Country {name: "China"}), (c2:Country {name: "Japan"}), (s1:DataType {name: "GDP"}), (s2:DataType {name: "Population"}), (r1) - [:GROUPED_BY] -> (c1), (r1) - [:GROUPED_BY] -> (s1), (r2) - [:GROUPED_BY] -> (c1), (r2) - [:GROUPED_BY] -> (s2), (r3) - [:GROUPED_BY] -> (c2), (r3) - [:GROUPED_BY] -> (s1), (r4) - [:GROUPED_BY] -> (c2), (r4) - [:GROUPED_BY] -> (s2), (q:Query {summary: "Looking for Japan GDP"}), (q) - [:FILTERED_BY] -> (c2), (q) - [:FILTERED_BY] -> (s1) ; 的所有记录(在这种情况下,它只是一个记录)。

以下查询返回所有GROUPED_BY或日本 OR GDP的记录,但我需要GROUPED_BY 两者的记录。

Japan

收益: Graph Overview

1 个答案:

答案 0 :(得分:1)

我们在performing match intersection上有Neo4j知识库文章,其中提供了几种获取所需结果的方法。

(还要记住,节点变量可能应该保持单数,因为它们只会与每行的单个节点匹配。请尝试将多个变量保留到列表中,以避免查询中的混乱。)

一种可能的方法如下:

null