我在数据库中有一个id为1的节点和一个id为2的节点,它们相互链接。为什么我运行此查询
MATCH (a)-[r]-(b) WHERE id(a)=1 AND id(b)=2 RETURN *;
什么都没有归还?
解决方案
我使用GrapheneDB。通常GrapheneDB在节点图形上显示系统节点id,但是当你有一个属性id
时,它会显示出来。当我运行查询时,我使用的图形ID实际上并不是系统ID,因此id(a)没有给出预期的结果。
答案 0 :(得分:1)
因为为每个候选结果评估WHERE
子句,并且整个子句必须求值为true。
此外,放置MATCH (a)-[r]-(b)
只会找到图表中与这两个节点相关的部分。
如果您只想查找节点1和2,可以执行以下操作:
MATCH n
WHERE id(n) = 1 OR id(n) = 2
RETURN n
但是,您应不使用节点ID。他们被弃用,并逐步淘汰。还有很多其他方法可以查找和识别不依赖于其内部标识符的节点。如果您根据实际情况打开一个新问题,我们可以帮助您撰写更好的查询。