我试图从neo4j
(v.2.3)中的巨大图表中提取数据子集,以便将该分区复制到文件中。
我想提取:
的所有数据(即标签/类型和键值属性)我们假设我们有一个如下图表:
CREATE
(n:Label0:Label1 { name: 'NameA', title: 'TitleA' }),
(m:Label1:Label2:LabelBaz { name: 'NameB', title: 'TitleB' }),
(o:Label3 { name: 'NameC', title: 'TitleC' }),
(n)-[r:type0]->(m)
(m)-[s:type1]->(o)
如果我指定:
Label0
,Label1
type0
我应该获得节点n
和m
以及关系r
及其详细信息(即标签/类型和属性)
如果我指定:
Label0
,Label1
type0
,type1
我应该获得节点n
和m
以及关系r
及其详细信息。
如果我指定:
Label0
,Label1
type1
我应该获得节点n
和m
及其详细信息,但没有任何关系。
有没有办法让分区有几个Cypher
个查询?
答案 0 :(得分:2)
以下是获取每个关系的一种方法(其类型位于$types
parameter,其2个末端节点在$labels
参数中有标签)及其末端节点
MATCH (n)-[r]->(m)
WHERE
TYPE(r) IN {types} AND
ANY(l1 IN LABELS(n) WHERE l1 IN {labels}) AND
ANY(l2 IN LABELS(m) WHERE l2 IN {labels})
RETURN r, n, m;
请注意,此查询无法利用任何索引(因为感兴趣的节点类型不是静态的,并且查询不关心节点属性)。因此,查询时间将随着节点数量的增加而增加。