2015-08-14 63 views
0

我遇到了简单匹配的问题。 例如, 我有一些节点是否有可能通过id匹配节点,该节点位于其他节点或关系的属性中?

start startNode = node(0) 

它与另一个的关系。其中一个关系的属性是id(thirdNode)的idOfThirdNode。

我发现start point = node()只得到数字作为参数和任何toInt(rel.idOfThirdNode)不可用在所有的,由其他财产match(point:_Node) where id(point) = rel.idOfThirdNode

查找节点是没有问题的。但是不可能设置新的重复id属性。

有这个问题的任何决定或只保存模型中的这个属性,并开始与此属性,如id的新匹配?

编辑: 早些时候,我曾在此类行动的结果是:在某些领域

start startNode = node({0}) 
optional match startNode-[r:REL]-(relNode: _Node) 
return distinct startNode, id(r) as linkId, id(relNode) as nodeId, 
r.idOfthirdNode as point 

漂亮的餐桌上零点

______________________________________ 
| StartNode| linkId | nodeId | point | 
-------------------------------------- 
| startNode| 1 | 2 | null | 
| info |  |  |  | 
------------------------------------- 
| startNode| 3 | 4 | 5 | 
| info |  |  |  | 

但现在这个“里”让禁用所有空匹配

start startNode = node({0}) 
optional match startNode-[r:REL]-(relNode: _Node), (pointNode:_Node) 
where id(pointNode) = r.idOfthirdNode 
return distinct startNode, id(r) as linkId, id(relNode) as nodeId, 
collect({pointNode.name, id:id(pointNode)}) as point 

,我只获得第二条线。

回答

0

好这应该为你工作:

START startNode = node(0) 
MATCH (startNode)-[rel]->(secondNode), (thirdNode:_Node) 
WHERE ID(thirdNode) = rel.idOfThirdNode 
RETURN startNode, secondNode, thirdNode 
+0

谢谢,它帮助我 –

1

你应该能够做这样的事情:

MATCH (point:_Node), (node:Label) 
WHERE ID(point) = node.idOfThirdNode 
RETURN * 

但我从来没有真正看到了这是因为关系是如此远低于国外键

相关问题