Gremlin 查询从下到上遍历图捕获顶点子项

Gremlin query to traverse graph bottom to top capturing vertex children

我们使用 Gremlin 3.2 兼容的数据库。实际上,我们在 graph/gremlin 模式下尝试 Cosmos DB。但我正在寻找 gremlin 查询,所以没有必要它只与 Cosmos DB

有关

图表如下图所示

我创建了一个能够捕获红色的查询 vertices/nodes。

g.V("A").emit().repeat(__.in('depends')).until(__.inE().count().is(0))

但努力扩展查询以捕获每个顶点的直接子节点。在图片上标为蓝色的。

任何人都可以帮助处理这样的 gremlin 查询吗?

这是在线编辑器中的查询https://gremlify.com/spml2ktk03 如果使用在线编辑器:

  1. 实际:B->A->D->TOP
  2. 预期:B-> A(包括有关 C 的信息)-> D (包括关于 E 的信息)-> TOP

您应该能够通过使用 store() 将所有顶点存储在树中来完成您正在寻找的内容,然后对于 repeat 的每次迭代,您可以使用 sideEffect() 找到它的子节点并存储它们还有。

g.V().hasLabel('B').store('v').
  repeat(__.in('depends').store('v').
    sideEffect(out('depends').store('v'))).
  until(__.inE().
    count().is(0)).cap('v')

这个returns我:

B -> A -> C-> D -> E -> TOP