0

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

所以有了这个数据集

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

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

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

4

1 回答 1

2

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

但是,由于您希望该id值是全局唯一的,因此您应该创建唯一性约束(它会自动为您创建索引作为副作用) ,而不是创建索引。这将告诉 neo4j为您强制执行唯一性。id

于 2017-06-07T22:01:59.693 回答