Gremlin - 一次添加多个子顶点 - addV 和 step

Gremlin - Adding multiple child vertices in one go - addV and step

这是我想玩的一般主题:

我正在尝试通过执行以下操作来做到这一点:

  1. 创建“父”顶点并使用as("parent")
  2. 创建边“parent_to”
  3. 创建“子”顶点
  4. select("parent)
  5. 重复边和子顶点步骤

示例:

g.addV("parent").property("parent_value","value1").as("parent")
    .addE("parent_to")
        .addV("child").property("child_value","value2")
.select("parent")
    .addE("parent_to")
        .addV("child").property("child_value","value3")

问题是这给了我 1 个父顶点和两个子顶点,但是边循环往返于父顶点,使子顶点“孤立”。
我已经链接了一个 post 给了我一个工作模式,但它真的是在一个查询中处理层次结构而不需要递归的最好方法吗? Other QA 注意:为示例添加了一个级别

g.addV("parent").as("parent")
    .and(
            addV("child").property("child_value","value2")
                .addE("parent_to").from("parent"),
            addV("child").property("child_value","value3").as("child3").and(
                        addV("grandchild").property("gchild_value","value4").addE("parent_to").from("child3"),
                        addV("grandchild").property("gchild_value","value5").addE("parent_to").from("child3")
                    )
                .addE("parent_to").from("parent")
        )

因为这将在 AWS Neptune 上使用,所以我必须将所有内容添加到一个查询中以维护事务。

您的查询已结束,只是缺少指定 from() or to() 步骤来告诉 addE() 连接哪些顶点。在这种情况下,您可能想要使用此处所示的 to() 步骤。

g.addV("parent").
  property("parent_value", "value1").as("parent").
  addE("parent_to").to(addV("child").property("child_value", "value2")).
  select("parent").
  addE("parent_to").to(addV("child").property("child_value", "value3"))