在Cypher REST API中自动生成节点的序列号 - Neo4J

dee*_*esh 1 rest neo4j cypher

我需要在将节点插入neo4j db时自动生成序列号,此序列#将类似于节点的id,可用于生成外部URL以直接从UI访问该节点.

这类似于mysql中自动生成序列属性,我们如何通过Cypher在neo4j中执行此操作?我做了一些研究,发现了这些链接

在Neo4j中生成友好的id序列

http://neo4j.com/api_docs//1.9.M05/org/neo4j/graphdb/Transaction.html

但是,当我在事务模式下以编程方式执行此操作时,这些链接非常有用,在我的情况下,它们都使用Cypher REST API.

请指教.

谢谢,

Deepesh

Ste*_*ter 5

您可以使用MERGE模仿序列:

MERGE (s:Sequence {name:'mysequenceName'})
ON CREATE s.current = 0
ON MATCH s.current=s.current+1
WITH s.current as sequenceCounter
MATCH .... <-- your statement continues here
Run Code Online (Sandbox Code Playgroud)

  • 由于“ MERGE”将锁定序列节点,因此该方法具有线程安全性。但是,在获取新的序列值时,多个并发线程将需要等待并按顺序进行处理。与RDBMS图相比,数据库通常不需要自己的唯一ID,因此这不是核心功能。 (2认同)