Gremlin Tinkerpop:创建嵌套属性

Gremlin Tinkerpop:创建嵌套属性,gremlin,tinkerpop,tinkerpop3,gremlin-server,amazon-neptune,Gremlin,Tinkerpop,Tinkerpop3,Gremlin Server,Amazon Neptune,我想创建一个标签foo的顶点,它包含一个属性子属性。子属性将有两个属性A、B。子属性本身可以包含更多嵌套子属性 如果删除顶点foo,则应删除其所有属性(包括子属性)。我的查询模式是查询具有属性A='bar'的标签foo的所有顶点 这可以通过将子对象表示为顶点而不是属性来轻松表示,但是必须通过执行源自顶点foo的dfs/bfs来删除子对象。事实证明,这是一件代价高昂的事情。如果childs另存为属性,则dfs/bfs的删除操作将被保存 如何创建嵌套属性以及如何使用ApacheTinkerpop查询

我想创建一个标签foo的顶点,它包含一个属性
子属性
。子属性将有两个属性A、B。子属性本身可以包含更多嵌套子属性

如果删除顶点foo,则应删除其所有属性(包括子属性)。我的查询模式是查询具有属性A='bar'的标签foo的所有顶点

这可以通过将子对象表示为顶点而不是属性来轻松表示,但是必须通过执行源自顶点foo的dfs/bfs来删除子对象。事实证明,这是一件代价高昂的事情。如果childs另存为属性,则dfs/bfs的删除操作将被保存


如何创建嵌套属性以及如何使用ApacheTinkerpop查询它们。是否有其他数据模型可用于降低查询成本。

Neptune不支持元属性。即使它会,你也不应该使用它们。如果您有层次结构,并且已经使用了graph DB,那么您应该从它的功能中受益。 如果只存储嵌套属性是您的需要,那么您可能应该查看文档数据库

删除子顶点不应是昂贵的操作:

g.V(child_id).emit().repeat(out()).drop()