为Cypher

时间:2017-06-07 21:10:27

标签: indexing neo4j cypher cypher-3.1

我的数据库有一条规则。一切都必须有一个' id'。由于这是我的主键字段,我想索引它,但似乎创建索引的唯一方法是指定标签。

使用此数据集

CREATE (:TEST1{id:"<uuid>"}),
(:RAWR{id:"<uuid>"}),
(:FOO:BAR{id:"<uuid>"}),
({id:"<uuid>"})

我想使用索引通过其UUID查找未标记的节点。

Cypher有可能吗?或者是我注入“节点”的唯一选择。标签到一切进入数据库? (创建一个标签然后将其分配给所有内容是错误的。并且劫持所有创建请求以添加附加标签感觉就像我在寻找麻烦。)

1 个答案:

答案 0 :(得分:1)

节点可以有多个标签。因此,除了现有标签之外,您还可以为所有节点分配一个公共标签,然后使用该公共标签和id创建索引。

但是,由于您希望id值是全局唯一的,而不是创建索引,您应该创建一个uniqueness constraint(它会自动为您创建索引)副作用)。这会告诉neo4j为你强制id唯一性。