Graph 在gremlin查询中显示级别

Graph 在gremlin查询中显示级别,graph,gremlin,janusgraph,Graph,Gremlin,Janusgraph,我正在执行gremlin查询,如下所示: g.V().hasLabel('A')。has('label_A','A')。emit()。repeat(outE().inV())。valueMap() 在多个级别获取所需的节点输出 除了属性之外,我还想向输出中添加一个level属性。我怎样才能做到呢 您可以使用和ack进行深度: g.withSack(0).V().hasLabel('A').has('label_A','A').emit(). repeat(sack(sum). b

我正在执行gremlin查询,如下所示:

g.V().hasLabel('A')。has('label_A','A')。emit()。repeat(outE().inV())。valueMap()

在多个级别获取所需的节点输出


除了属性之外,我还想向输出中添加一个level属性。我怎样才能做到呢

您可以使用
和ack
进行深度:

g.withSack(0).V().hasLabel('A').has('label_A','A').emit().
  repeat(sack(sum).
      by(constant(1)).
    out()).
  project('depth', 'properties').
    by(sack()).
    by(valueMap())

示例:

添加另一个答案来指出,您可以使用
循环作为替代方法来避免
sack

g.V().hasLabel('A').has('label_A','A').
      emit().
      repeat(group('x').by(loops()).by(valueMap().fold()).out()).
      cap('x') 

是否可以修改查询以获得如下输出?将第0级第一级节点的根视为1.1、1.2、1.3,依此类推。第二级节点为1.1.1、1.1.2、1.1.3(针对链接到1.1的节点)、1.2.1、1.2.2、1.2.3(针对链接到1.2的节点)。其他节点和下一个级别也是如此。我在这里为您的其他问题添加了一个示例: