在不复制字段的情况下创建节点并为其设置 ID

Creating node and set ID for it without duplicating field

我用给定的 id 创建了一个节点,

create (n:Entry) set n.id=1111

但是数据库在节点中创建了两个字段id,一个是默认的,一个是我自己创建的。

请问如何在不生成两个相似字段“id”的情况下,在创建时为节点设置id? 提前致谢。

您看到的两个值是

  • Neo4j的内部节点标识符id(n),这里12
  • 属性n.id,此处1111

您可以从 Cypher 中访问它们,取消上面显示的语法, MATCH (n:Entry) RETURN id(n), n.id 产量:

id(n) n.id
12 1111

您无法从Cypher更改内部ID,它是在系统创建节点时分配的。我知道控制哪个节点获得哪个内部 ID 的唯一方法(你永远不必这样做,重新考虑你的软件设计!)是使用 Neo4j Admin Import 工具和 --id-type=ACTUAL 选项。但是,这仅适用于批量导入到先前空数据库中的节点。