用cyper获取neo4j的内部唯一ID并将其分配给我的对象

Get neo4j's internal unique ID with cyper and assign it to my object

我正在创建一个这样的新对象,此时它有一个占位符 ID:

    var query = client.Cypher
    .Create("(e:Example{newExample})")
    .WithParam("newExample", newExample)
    .Return(e =>  e.As<Example>())
    .Results;

但是我的对象需要一个唯一的 ID,我需要从服务器等请求它。Neo4j 在内部对所有节点都有一个唯一的 ID。有没有办法从 neo4j 检索这个 ID 并将其分配给我的对象 ID?

我读到过,这通常是个坏主意,因为在删除节点后可以从 neo4j 重用 ID。但是由于具有此节点 ID 的对象是此节点,因此该 ID 对我来说也不再存在。所以我看不出有什么反对的。

否则我可以使用我知道的 GUID。

您可以使用以下密码获取内部节点ID:

CREATE (e:Example)
RETURN id(e) as id

Neo4j 也有适用于此类情况的 randomUUID() 过程。查看 documentation 了解更多信息。

CREATE (e:Example{id:randomUUID()})
RETURN e.id as id