簡體   English   中英

Gremlin:從edgeId進出頂點,包括邊緣屬性

[英]Gremlin: get in & out vertex from edgeId including edge properties

給定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頂點,但是,它不具有邊的屬性。

如果你要使用的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))

暫無
暫無

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

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