【发布时间】:2018-07-19 18:36:19
【问题描述】:
我正在尝试返回与连接到我的起始节点的集合中的所有节点匹配的节点。作为一个最小的例子,假设我有几个国家的GDP 和Population 的Records。用户执行Query,FILTERS_BY Country=Japan 和DataType = GDP。我想返回GROUPED_BY Japan 和 GROUPED_BY GDP 的所有记录。
最小图可以如下构造:
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 和 Japan 和 GDP 的所有记录(在这种情况下它只是一条记录)。
以下查询返回 GROUPED_BY 日本 OR GDP 的所有记录,但我需要 GROUPED_BY both 的记录。
MATCH (q:Query {summary: "Looking for Japan GDP"}),
(q) - [:FILTERED_BY] -> (filters),
(r:Record) - [:GROUPED_BY] -> (filters)
return r;
【问题讨论】: