Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 从单个密码调用获取多个关系属性返回_Neo4j_Cypher - Fatal编程技术网

Neo4j 从单个密码调用获取多个关系属性返回

Neo4j 从单个密码调用获取多个关系属性返回,neo4j,cypher,Neo4j,Cypher,我对cypher、neo4j和graph数据库基本上是新手。我使用的数据模型有点混乱,但看起来节点只是GUID占位符,所有真实的“数据”都是节点关系的属性(将每个节点关联回节点零) 每个节点(基本上只有一个guid)都有十几个与键/值对的关系,这些键/值对是我需要的实际数据。(我猜这样做是为了版本控制?) 我需要能够进行一次密码调用,以从连接到同一节点的两个(或多个)关系中获取属性——这里有两个调用,我希望将它们转换为一个调用 start n = Node(*) match n-[ar]->

我对cypher、neo4j和graph数据库基本上是新手。我使用的数据模型有点混乱,但看起来节点只是GUID占位符,所有真实的“数据”都是节点关系的属性(将每个节点关联回节点零)

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

我需要能够进行一次密码调用,以从连接到同一节点的两个(或多个)关系中获取属性——这里有两个调用,我希望将它们转换为一个调用

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

我该如何在一个单独的密码呼叫中进行此操作

编辑-澄清

我希望以行列表的形式获取结果,每个请求的值都有一列

返回的东西像


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

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

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
有关密码操作的更多文档,请参阅

根据您的编辑,我猜您实际上是在寻找节点同时具有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

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

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
有关密码操作的更多文档,请参阅

根据您的编辑,我猜您实际上是在寻找节点同时具有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

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

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
start n=Node(*)
匹配mm
其中has(ar.value)和has(ar.proptype)以及ar.proptype='ccid'和
has(br.value)和has(br.proptype)以及br.proptype='description'
返回ar.value,br.value

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

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
start n=Node(*)
匹配mm
其中has(ar.value)和has(ar.proptype)以及ar.proptype='ccid'和
has(br.value)和has(br.proptype)以及br.proptype='description'
返回ar.value,br.value

您应该通过用括号括住OR来限定OR,因为此计算应该是错误的。这确实有效。是的,但我希望获得它,以便可以在同一行结果中获得它们。意思是,我想说return n.id,r.ccid,r.description或其他什么..恐怕我不完全理解。您是否可以更新您的问题更详细,因为它似乎不能准确地反映您想要的?编辑。为a和b关系添加了AR和BR,然后在底部添加了一个psuedo返回值,显示我希望在单个line@JasonEllis我不确定我是否理解你的意思,但我认为编辑应该让你得到你想要的。你应该用括号限定OR,因为这个评估应该是错误的。这确实有效。是的,但我想得到它,这样我就可以在同一行的结果中得到它们。意思是,我想说return n.id,r.ccid,r.description或其他什么..恐怕我不完全理解。您是否可以更新您的问题更详细,因为它似乎不能准确地反映您想要的?编辑。为a和b关系添加了AR和BR,然后在底部添加了一个psuedo返回值,显示我希望在单个line@JasonEllis我不确定我是否理解你的意思,但我认为编辑应该能满足你的需要。