簡體   English   中英

使用樹 function 在 gremlin 中返回邊屬性

[英]Returning edge properties in gremlin using tree function

詢問

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

Output

[
    {
        "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}": {}
                }
            }
        }
    },

查詢僅返回節點的屬性。 請修改查詢,使其分別以樹格式返回節點屬性和關系。

如果你想獲得你需要通過它們的邊的屬性,將outin步驟分成outE().inV()inE().outV() 然后樹步驟將考慮到它們。

此外,如果您想在邊緣指定返回值,您可以將第二by調制器添加到樹步驟。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM