作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个节点:
Database: {
name: 'example',
description: 'this is the example database'
type: 'relational'
}
我希望 type
是一个枚举,例如:
DB_TYPE enum {
relational
document
graph
other
}
第一个问题:我如何定义这个枚举类型,以便所有“数据库”节点都可以有一个 type
属性,它是这 4 个值之一?
我是否应该将其保留为字符串而忘记制作枚举?
我考虑过为这些节点使用标签,例如::Relational
、:Document
。
第二个问题:如果我应该使用标签,确定给定的 database
节点是关系型、文档型、图形型还是其他节点的密码语法是什么?
最佳答案
据我所知,无法为节点定义枚举属性。根据您的描述,我认为您最好使用标签。如果您真的不想使用标签,另一种选择可能是每种类型有一个节点,然后将数据库节点连接到这些类型节点。但是根据图表的大小,这些类型的节点可能会成为具有很多关系的 super 节点。我不会建议这种方法。再次对我来说,此类用例中的最佳解决方案是使用标签。
最简单的方法是根据 labels(a)
检查标签,其中 a
是您的节点。例如:
MATCH (a) where 'Relational' in labels(a) OR 'Document' in labels(a) ....
还有一个 APOC 过程 apoc.label.exists
可以使用:
MATCH (a) where apoc.label.exists(a, 'Relational') OR apoc.label.exists(a, 'Document')....
关于neo4j - Neo4j 如何定义枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60027003/
我是一名优秀的程序员,十分优秀!