【问题标题】:Fast access to nodes in Neo4j快速访问 Neo4j 中的节点
【发布时间】:2023-03-25 07:51:01
【问题描述】:

我有一个方法可以创建一个带有节点和关系的图表。我想将节点 ID 列表返回给调用者,以便后续步骤可以快速定位这些节点并创建其他关系。我将无法返回 Node 实例。

在 SQL 世界中,我可以返回一个主键或唯一键。在 neo4j 世界中,我返回什么?有没有我可以使用的唯一节点标识符,而不会让自己陷入第 7 层地狱?我自己做身份证吗?由于我精通 SQL,因此在学习 Neo4J 方法时遇到了困难。

【问题讨论】:

    标签: python neo4j py2neo


    【解决方案1】:

    Neo4j 中的每个节点(和关系)都有一个 ID,从技术上讲,它是相应数据存储文件中的偏移量指针。您需要注意,删除某些节点并创建新节点可能会导致新节点具有以前使用的节点的 id(因为它们会重用文件中的空闲区域)。

    如果您确定没有删除图表中的任何内容,您可以安全地使用内部节点 ID,例如通过MATCH (n) RETURN id(n) limit 5。如果您确实使用节点 ID 删除图表中的内容是通往第 7 级地狱的一种方式:-)

    更安全的方法是为要引用的节点分配一个人工标识符,例如一个uuid,把它放在索引中。有一些可用的工具,例如https://github.com/graphaware/neo4j-uuid

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 2017-03-29
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多