man*_*ran 1 gremlin tinkerpop3
我的场景是在单个查询中在顶点之间添加多个边:
假设以下节点:这些是我拥有的标签和ID
用户数:
4100
歌曲:
4200
4355
4676
我必须在这些顶点之间建立边缘
4100 --> 4200,
4100 --> 4355,
4100 --> 4676.
Run Code Online (Sandbox Code Playgroud)
通常可以通过在node之间创建单个边来完成此操作。如果我们想一次在50个以上的顶点之间创建边,则这不是一种有效的方法。我正在使用Tinkerpop 3.0.1。
使用最新的Tinkerpop。您可以执行以下操作:
创建一个样本图:
gremlin> graph = TinkerGraph.open();
gremlin> graph.addVertex("User").property("id", 4100);
==>vp[id->4100]
gremlin> graph.addVertex("Song").property("id", 4200);
==>vp[id->4200]
gremlin> graph.addVertex("Song").property("id", 4355);
==>vp[id->4355]
gremlin> graph.addVertex("Song").property("id", 4676);
==>vp[id->4676]
Run Code Online (Sandbox Code Playgroud)
现在,在单个遍历中添加边:
gremlin> graph.traversal().V().hasLabel("User").as("a").
V().hasLabel("Song").
addE("edge to song").from("a");
==>e[8][0-edge to song->2]
==>e[9][0-edge to song->4]
==>e[10][0-edge to song->6]
Run Code Online (Sandbox Code Playgroud)
这显示了addE在遍历内使用副作用的另一个示例。
我有一个类似的问题。使用C#SDK,我这样做是这样的:
g.V('4100')
.addE('knows').to(g.V('4200')).outV()
.addE('knows').to(g.V('4355')).outV()
.addE('knows').to(g.V('4676'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4238 次 |
| 最近记录: |