在Neo4j中,有没有什么方法可以对类型层次进行建模?例如,如果我要构建汽车的类层次结构,则可能具有“汽车”的基本类型,然后具有扩展该子类的子类,例如“SportCar”等。
我希望能够创建“SportCar”的实例,但是运行查询以获取所有“Car”。这可能吗?如果是这样,那是什么技术?
我认为我想做的是创建“标签层次结构”-但我不认为neo4j支持该功能。
最佳答案
保罗
首先,建议您阅读“Graph Databases”,这是this link上免费的O'Reilly电子书。
快速回答,有很多方法可以执行此类操作,而最佳选择取决于您要解决的问题。一种方法是构造一个“Car”节点,然后将“SportCar”节点与具有某种类型关系的“Car”节点相关联,例如
CREATE (m:Car)
MATCH (m:CAR) WITH m CREATE (n:SportCar)-[:IS_A]->(m)
并创建其他类型的汽车,并将它们与“汽车”节点相关联。
然后,您可以通过查找所有汽车
MATCH (m:Car)<-[:IS_A]-(n) RETURN n
您还可以仅在每个节点上贴上Car和SportCar(以及LuxoCar等)标签。那只是许多方法中的两种。
恩典与和平
吉姆