gpt4 book ai didi

gremlin - 在 Gremlin 中合并 map

转载 作者:行者123 更新时间:2023-12-01 14:34:36 26 4
gpt4 key购买 nike

我正在尝试编写一个满足响应对象中两个要求的查询:

  • 必须包括顶点的所有属性,而不在查询中指定单个字段。
  • 必须在对象的同一级别上展平结果。

  • 作为单独的查询,我可以这样做:

    1. valueMap询问
    g.V(1)
    .valueMap().by(unfold()).fold()

    回复:

    {
    "property1": "value1",
    "property2": "value2"
    }

    2. project询问
    g.V(1)
    .project("projectedProperty")
    .by(out("X").valueMap().by(unfold()).fold())

    回复:

    {
    "projectedProperty": "value",
    }

    组合查询

    我尝试使用联合来组合这些结果:
    g.V(1)
    .union(
    valueMap().by(unfold()).fold(), // Query 1
    project("projectedField").by(out("X").valueMap().by(unfold()).fold()) // Query 2
    ).fold()

    回复:

    {
    [
    {
    "property1": "value1",
    "property2": "value2"
    },
    {
    "projectedProperty": "value"
    }
    ]
    }

    这种联合方法依赖于我在最后折叠,这反过来又不能正确合并/展平两张 map 。预期响应是:

    {
    "property1": "value1",
    "property2": "value2",
    "projectedProperty": "value"
    }

    有没有更好的方法来完成合并/展平响应对象中的两个 map 的任务?

    最佳答案

    典型pattern是到 unfold()您映射到条目(键/值)然后 group()他们合而为一:

    gremlin> g.V().has('person','name','marko').
    ......1> union(project('count').by(outE().count()), elementMap()).
    ......2> unfold().
    ......3> group().by(keys).by(select(values))
    ==>[count:3,name:marko,label:person,id:1,age:29]

    关于gremlin - 在 Gremlin 中合并 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60307292/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com