gpt4 book ai didi

neo4j - Neo4j 如何定义枚举类型?

转载 作者:行者123 更新时间:2023-12-05 05:06:12 26 4
gpt4 key购买 nike

我有一个节点:

Database: {
name: 'example',
description: 'this is the example database'
type: 'relational'
}

我希望 type 是一个枚举,例如:

DB_TYPE enum {
relational
document
graph
other
}

第一个问题:我如何定义这个枚举类型,以便所有“数据库”节点都可以有一个 type 属性,它是这 4 个值之一?

我是否应该将其保留为字符串而忘记制作枚举?

我考虑过为这些节点使用标签,例如::Relational:Document

第二个问题:如果我应该使用标签,确定给定的 database 节点是关系型、文档型、图形型还是其他节点的密码语法是什么?

最佳答案

  1. 据我所知,无法为节点定义枚举属性。根据您的描述,我认为您最好使用标签。如果您真的不想使用标签,另一种选择可能是每种类型有一个节点,然后将数据库节点连接到这些类型节点。但是根据图表的大小,这些类型的节点可能会成为具有很多关系的 super 节点。我不会建议这种方法。再次对我来说,此类用例中的最佳解决方案是使用标签。

  2. 最简单的方法是根据 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com