我遇到了简单匹配的问题。 例如, 我有一些节点
start startNode = node(0)
它与另一个有关系。关系的一个属性是带有id(thirdNode)的idOfThirdNode。
我发现start point = node( )
只获取数字作为参数,而任何toInt(rel.idOfThirdNode)
都不可用,因为其他match(point:_Node) where id(point) = rel.idOfThirdNode
按属性查找节点不是问题。但是无法设置新的重复id-property。
是否有任何决定或仅在模型中保存此属性并开始与此属性的新匹配(例如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 | | | |
但是现在这个“where”使得禁用所有空匹配
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 :(得分:1)
你应该可以这样做:
MATCH (point:_Node), (node:Label)
WHERE ID(point) = node.idOfThirdNode
RETURN *
但我从未真正看到过这种情况,因为人际关系比外键更好
答案 1 :(得分:0)
这应该适合你:
START startNode = node(0)
MATCH (startNode)-[rel]->(secondNode), (thirdNode:_Node)
WHERE ID(thirdNode) = rel.idOfThirdNode
RETURN startNode, secondNode, thirdNode