Graph 使用树函数返回gremlin中的边属性

Graph 使用树函数返回gremlin中的边属性,graph,gremlin,janusgraph,Graph,Gremlin,Janusgraph,质疑 输出 g.withSack(0).V().hasLabel('A').has('label_A','A').union(__.emit().repeat(sack(sum).by(constant(1)).in()),emit().repeat(sack(sum).by(constant(-1)).out())).project('level','properties').by(sack()).by(tree().by(valueMap().by(unfold())).unfold().u

质疑

输出

g.withSack(0).V().hasLabel('A').has('label_A','A').union(__.emit().repeat(sack(sum).by(constant(1)).in()),emit().repeat(sack(sum).by(constant(-1)).out())).project('level','properties').by(sack()).by(tree().by(valueMap().by(unfold())).unfold().unfold())


查询只返回节点的属性。请修改查询,使其以树格式分别返回节点的属性和关系。

如果要获取需要通过它们的边的属性,请将
中的
步骤拆分为
outE().inV()
inE().outV()
。然后,树步骤将考虑它们

此外,如果要在边上指定返回值,可以通过
调制器在树步骤中添加第二个

[
    {
        "level": 0,
        "properties": {
            "key": {
                "label_A": "A"
            },
            "value": {}
        }
    },
    {
        "level": 1,
        "properties": {
            "key": {
                "label_A": "A"
            },
            "value": {
                "{label_B="B"}": {}
            }
        }
    },
    {
        "level": 2,
        "properties": {
            "key": {
                "label_A": "A"
            },
            "value": {
                "{label_B=B}": {
                    "{label_C=C}": {}
                }
            }
        }
    },

例如:

g.withSack(0).V().hasLabel('material').
  has('label_A', 'A').union(
    __.emit().repeat(sack(sum).
        by(constant(1)).
      inE().outV()),
    emit().repeat(sack(sum).
        by(constant(-1)).
      outE().inV())
  ).
  project('level', 'properties').by(sack()).
    by(tree().
        by(valueMap().by(unfold())).
        by(valueMap()))