0

一般来说,我是 cypher、neo4j 和图形数据库的新手。我使用的数据模型有点令人困惑,但看起来节点只是 GUID 占位符,所有真实的“数据”作为与节点的关系的属性(将每个节点与节点零相关联)。

每个节点(基本上只有一个 guid)与键/值对有十几个关系,这些键/值对是我需要的实际数据。(我猜这是为版本控制完成的?..)

我需要能够进行单个密码调用以从连接到同一节点的两个(或多个)关系中获取属性——这是我想在一个调用中进行的两个调用;

start n = Node(*)
match n-[ar]->m
where has(ar.value) and has(ar.proptype) and ar.proptype = 'ccid' 
return ar.value

start n = Node(*)
match n-[br]->m
where has(br.value) and has(br.proptype) and br.proptype = 'description'
return br.value

如何在单个密码调用中执行此操作?

编辑 - 澄清;

我想将结果作为行列表获取,每个请求的值都有一列。

像这样返回的东西;

n.id 作为节点,ar.value 作为 CCID,br.value 作为描述

4

2 回答 2

3

如果我错了,请纠正我,但我相信你可以这样做:

start n = Node(*)
match n-[r]->m
where has(r.value) and has(r.proptype) and (r.proptype = 'ccid' or r.proptype = 'description') 
return r.value

有关 Cypher 操作的更多文档,请参见此处

根据您的编辑,我猜您实际上是在寻找节点同时具有 ccid 和描述的情况?这个问题很模糊,但我认为这就是你要找的。

start n = Node(*)
match n-[ar]->m, n-[br]->m
where (has(ar.value) and has(ar.proptype) and ar.proptype = 'ccid') and 
      (has(br.value) and has(br.prototype) and br.proptype = 'description') 
return n.id as Node, ar.value as CCID, br.value as Description
于 2013-06-25T15:10:07.067 回答
0

您可以从两个方面匹配关系:

start n = Node(*)
match m<-[br]-n-[ar]->m
where has(ar.value) and has(ar.proptype) and ar.proptype = 'ccid' and 
has(br.value) and has(br.proptype) and br.proptype = 'description'
return ar.value, br.value
于 2017-08-29T08:30:59.213 回答