Gremlin 查询以获取所有直接和间接相关的顶点
Gremlin query to get all the directly as well as indirectly related vertices
我有一个图形数据库,其中有一个根顶点和一些 "id= Xyz"。这个顶点与另外 3 个顶点相关,其边具有 "child" 的关系。
现在这 3 个顶点本身有 2 个连接的顶点,每个顶点具有与 "child".
相同的关系
我想获取所有直接或间接连接的顶点的信息,以保持嵌套结构。
JSON 输出应该是间接顶点的嵌套形式。
我们能做到吗?
如果树的深度增加到n怎么办
请帮助
不确定您希望数据如何显示,但您可以通过多种方式实现:
使用 path
得到一棵完整的树:
g.V().hasLabel('root').emit().repeat(out()).path()
如果您只想要两个级别:
g.V().hasLabel('root').emit().repeat(out()).times(2).path()
如果你想要特定的数据结构,你也可以使用project
步骤:
g.V().hasLabel('root').project('v', 'c').
by(id).
by(out().project('v', 'c').by(id).
by(out().id().fold()).fold())
我有一个图形数据库,其中有一个根顶点和一些 "id= Xyz"。这个顶点与另外 3 个顶点相关,其边具有 "child" 的关系。 现在这 3 个顶点本身有 2 个连接的顶点,每个顶点具有与 "child".
相同的关系我想获取所有直接或间接连接的顶点的信息,以保持嵌套结构。 JSON 输出应该是间接顶点的嵌套形式。
我们能做到吗?
如果树的深度增加到n怎么办 请帮助
不确定您希望数据如何显示,但您可以通过多种方式实现:
使用 path
得到一棵完整的树:
g.V().hasLabel('root').emit().repeat(out()).path()
如果您只想要两个级别:
g.V().hasLabel('root').emit().repeat(out()).times(2).path()
如果你想要特定的数据结构,你也可以使用project
步骤:
g.V().hasLabel('root').project('v', 'c').
by(id).
by(out().project('v', 'c').by(id).
by(out().id().fold()).fold())