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