【问题标题】:Displaying level in gremlin query在 gremlin 查询中显示级别
【发布时间】:2020-06-09 16:31:17
【问题描述】:

我正在执行 gremlin 查询如下:

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

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

除了属性之外,我还想在输出中添加一个级别属性。我怎样才能实现它?

【问题讨论】:

    标签: graph gremlin janusgraph


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用withSack 获取深度:

      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())
      

      示例:https://gremlify.com/ca32zczgvtkh6

      【讨论】:

      • 能否修改查询得到如下输出?将第 0 级第 1 级节点的根视为 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 的节点)。对于其他节点和下一级也是如此。
      • 我在这里为您的其他问题添加了一个示例:stackoverflow.com/questions/62302987/…
      猜你喜欢
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      相关资源
      最近更新 更多