首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gremlin:从edgeId获取输入和输出顶点,包括边属性

Gremlin:从edgeId获取输入和输出顶点,包括边属性
EN

Stack Overflow用户
提问于 2019-06-26 04:12:41
回答 1查看 81关注 0票数 2

在给定edgeId的情况下,我希望获得具有边属性的进出顶点。

我尝试了以下几种方法:

代码语言:javascript
复制
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);

带输出:

代码语言:javascript
复制
---------------------------------------------------------------------------------
[{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顶点,但是它没有边的属性。

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 15:51:03

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

代码语言:javascript
复制
g.E(edgeId).as("edge").bothV().path().by(valueMap(true))

此外,您还可以尝试使用project

代码语言:javascript
复制
g.E(edgeId).project("out", "in").by(outV().valueMap(true)).by(inV().valueMap(true))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56761351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档