我在一个项目中使用neo4j,有一个节点只有一个属性name
,我想使用ID获取该节点,它已经有一个ID,但是当我使用此代码时
MATCH (s:SKILLS{ID:65110}) return s
它什么也不返回,这是我的节点
如果查询错误,那么我如何使用数字查询
我在一个项目中使用neo4j,有一个节点只有一个属性name
,我想使用ID获取该节点,它已经有一个ID,但是当我使用此代码时
MATCH (s:SKILLS{ID:65110}) return s
它什么也不返回,这是我的节点
如果查询错误,那么我如何使用数字查询
Answers:
MATCH (s)
WHERE ID(s) = 65110
RETURN s
该ID
函数获取节点或关系的ID。这不同于任何称为id
或ID
您创建的属性。
CONSTRAINT
)来跟踪实体
警告:以下答案不正确!START仅应在访问旧索引时使用。在Cypher 2.2及更高版本中,它被禁用。
Neo4j建议使用
WHERE ID(n) =
,并且进一步指出,它只需要进行一次查找(不会扫描每个节点以找到匹配的ID)保持这个答案可以防止任何人犯同样的错误。
您可以使用WHERE ID(s) = 65110
,但这将检查数据库中每个节点的ID。
有一种更有效的方法可以做到这一点:
START s=NODE(517) MATCH(s) RETURN s
Result Details
这些控制台中的示例:console.neo4j.org/r/dbz1we(执行AllNodesScan)和console.neo4j.org/r/9076wd(执行NodeById)
+NodeByIdSeek
访问1个节点,但由于某种原因,它正在执行+AllNodesScan
。