如何确保标签的所有节点都具有一些共同属性?
例如,我想创建一个属性" name "对于标签的所有节点" Person",但我在编写属性名称时可能会出错(例如 namee !)
答案 0 :(得分:3)
今天没有在Neo4j中构建这样的机制(在编写本文时,当前版本的Neo4j 是2.1.6)。你所描述的是某种模式(如果比较例如RDB的DDL),Neo4j基本上是无模式的。这种结构完整性是quite often handled in the application layer for NoSQL databases。
现在可用于Neo4j的唯一模式操作是here。
目前他们包括:
CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE
CREATE INDEX ON :Person(name)
来自Michael Hunger的这个答案的评论是Neo4j背后的团队成员的一部分,表明将来可以为Neo4j提供更多限制。此外,迈克尔指出以下替代方案:
除此之外,FrobberOfBits指向包含大量分析器的工具NeoProfiler,其中大多数分析器针对您的数据库运行非常简单的Cypher查询并提供汇总统计信息。有些分析器实际上会在图表中发现数据,然后生成其他将在稍后运行的分析器。例如,如果在数据中发现名为“Person”的标签,则会将标签分析器添加到运行队列中,以检查具有该标签的节点群。