【发布时间】:2015-04-03 14:24:33
【问题描述】:
据我了解,Neo4j (ID(node)) 给出的 ID 是不稳定的,其行为有点像 SQL 中的行号。由于 ID 主要用于 SQL 中的关系,并且这些在 Neo4j 中很容易建模,因此 ID 似乎没有太多用处,但是您如何解决特定节点的检索?拥有一个应该为每个节点提供唯一路由的 REST API(例如/api/concept/23)对于 Web 应用程序来说似乎是一个非常标准的案例。
但是尽管它是如此基本,但我发现的唯一可行的方法是通过
- 语言特定框架
- 作为保持增量的未连接节点:
// get unique id
MERGE (id:UniqueId{name:'Person'})
ON CREATE SET id.count = 1
ON MATCH SET id.count = id.count + 1
WITH id.count AS uid
// create Person node
CREATE (p:Person{id:uid,firstName:'Gabriel',lastName:'Smith'})
RETURN p AS person
来源:http://www.neo4j.org/graphgist?8012859
真的没有更简单的方法吗?如果没有,有什么特别的原因吗?在 Neo4j 的背景下,我的方法是一种反模式吗?
【问题讨论】: