如何在ArcadeDB中获取顶点超类型的所有子类型名称?
查询ArcadeDB中顶点超类型的所有子类型名称
要获取指定顶点超类型的所有子类型名称,直接查询ArcadeDB内置的元数据类型VType即可,它存储了所有顶点类型的定义信息,无需关联实际顶点实例。
基础查询(直接子类型)
如果只需要查找Type1的直接子类型,用Cypher语句:
SELECT name FROM VType WHERE superTypes CONTAINS 'Type1'
VType:内置元数据类型,存储所有顶点类型的元数据name:返回的类型名称字段superTypes:该类型的父类型集合,用CONTAINS匹配目标超类型
递归查询(所有层级子类型)
如果需要包含多层继承的子类型(比如Custom_Type_1还有自己的子类型),用递归匹配的Cypher语句:
MATCH (child:VType)-[:EXTENDS*1..]->(parent:VType) WHERE parent.name = 'Type1' RETURN DISTINCT child.name
[:EXTENDS*1..]:匹配1层及以上的继承关系DISTINCT:避免重复返回同一类型
示例验证
针对你给出的类型结构View -> Type1 -> Custom_Type_1、View -> Type1 -> Custom_Type_2、View -> Type2 -> Custom_Type_3,执行上述查询后,会返回Custom_Type_1和Custom_Type_2,符合需求。
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

