【问题标题】:Gremlin: get in & out vertex from edgeId including edge propertiesGremlin:从 edgeId 进出顶点,包括边缘属性
【发布时间】:2019-06-25 20:12:40
【问题描述】:

给定 edgeId,我想通过边缘属性进出顶点。

我尝试了以下方法:

final String edgeId = "edge-nk1-to-nk2";
g.addV("nk_node").property(T.id, "nk1").property("name", "name-nk1").as("n1")
    .addV("nk_node").property(T.id, "nk2").property("name", "name-nk2").as("n2")
    .addE("friend").property(T.id, edgeId).property("name", "edge-name-prop-value").from("n1").to("n2")
    .next();

System.out.println("---------------------------------------------------------------------------------");
final Object usingBothVOutput = g.E(edgeId).as("edge")
    .bothV().as("nodes")
    .select("edge", "nodes").by(valueMap(true))
    .toList();

System.out.println(usingBothVOutput);
System.out.println("--------------------------------------------------------------------------------");
final Path path = g.E(edgeId).as("edge").bothV().path().next();
System.out.println(path);

有输出:

---------------------------------------------------------------------------------
[{edge={id=edge-nk1-to-nk2, label=friend, name=edge-name-prop-value}, nodes={id=nk1, label=nk_node, name=[name-nk1]}}, {edge={id=edge-nk1-to-nk2, label=friend, name=edge-name-prop-value}, nodes={id=nk2, label=nk_node, name=[name-nk2]}}]
--------------------------------------------------------------------------------
path[e[edge-nk1-to-nk2][nk1-friend->nk2], v[nk1]]

第一个查询输出具有两个节点,但没有指示哪个是 IN 哪个是 OUT。路径查询明确指出了 IN 和 OUT 顶点,但是它没有边的属性。

【问题讨论】:

    标签: java gremlin


    【解决方案1】:

    如果您想使用path 步骤,您可以添加by

    g.E(edgeId).as("edge").bothV().path().by(valueMap(true))
    

    另外,你可以尝试使用project:

    g.E(edgeId).project("out", "in").by(outV().valueMap(true)).by(inV().valueMap(true))
    

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 2018-02-06
      • 2018-06-22
      • 2019-01-03
      • 2021-07-13
      • 2020-09-26
      相关资源
      最近更新 更多