当前位置: 首页 > 知识库问答 >
问题:

快速访问Neo4j中的节点

贺浩漫
2023-03-14

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

在SQL世界中,我可以返回主键或唯一键。在neo4j的世界里,我应该回报什么?是否有一个唯一的节点标识符,我可以使用,而不会注定自己的地狱第七级?我有自己的身份证吗?由于我沉迷于SQL,我在学习Neo4J方法时遇到了困难。

共有1个答案

颜博达
2023-03-14

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

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

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

 类似资料:
  • 问题内容: 在php中,我经常需要使用数组来映射变量…但是我似乎无法在一个内衬中做到这一点。cf范例: 这是一个小问题,但有时会不时出现错误……我不喜欢这样的事实,我什么都不用使用变量;) 问题答案: 我真的不会去理会这个额外的变量。但是,如果需要,也可以在使用后将其从内存中删除: 或者,您可以编写一个小函数: 并使用以下命令调用: 现在应该自动销毁该阵列。

  • 问题内容: 我正在尝试将数据从一个View Controller的文本字段传输到另一个视图的标签。 如何从另一个View Controller的代码中调用View Controller实例?我正在使用情节提要,因此从未在代码中创建视图控制器的实例吗?是否自动创建实例?他们叫什么名字? 谢谢你的帮助! 问题答案: 在您的项目中添加一个新的Cocoa Touch类文件,为其命名并在其中设置以下代码:

  • 问题内容: Core Audio具有C API,可将一些数据复制到您提供的内存中。在一种情况下,我需要传递一个指向AudioBufferList的指针,该指针定义为: UInt32标识缓冲区的数量,并且实际缓冲区紧随其后。 我可以成功获得此: 我无法识别(AudioBuffer)语法,但我认为它并不重要- 我认为括号会被忽略,mBuffers只是一个AudioBuffer,由我自己完成指针数学运算

  • 本节记录了一些设计选择的理由。 它也作为一些(不是这样)常见问题的解答。 如果你认为某个问题应该添加到这个列表,开一个GitHub issue,我们将考虑改进文档或在这里添加问题。 为什么要限制外部依赖的使用? 这样做有几个原因。首先,Hana是一个非常基础的库;我们基本上重新实现了核心语言和支持异构类型的标准库。当编写代码时,人们会很快意识到,其他库很少需要,几乎一切都必须从头开始实现。此外,由

  • 我有一堆XML文档,其中包含我需要用假数据替换的个人信息。Person节点包含以下元素: UUID-必填项,不应触及。 名字-可选 LastName-可选 地址-可选 个人身份-必需 一个人可能会出现很多次,在这种情况下应该使用相同的假数据,即如果两个person节点具有相同的personID,那么它们都应该接收到相同的假ID。 我已经实现了一些Java代码,这些代码从XML字符串构建一个DOM树