当前位置: 首页 > 知识库问答 >
问题:

如何在单个gremlin查询中添加多条边?

谭云瀚
2023-03-14

我的场景是在单个查询中在顶点之间添加多条边:

假设下面的节点:这些是我拥有的标签和ID

用户:

4100

歌曲:

4200

4355

4676

我必须在这些顶点之间建立边

4100 --> 4200, 
4100 --> 4355, 
4100 --> 4676.

我们通常可以通过在节点之间创建单条边来实现。如果我们想一次在50多个顶点之间创建边,这不是一种有效的方法。我正在使用Tinkerpop 3.0.1。

共有3个答案

施自怡
2023-03-14

如果您有顶点id,则按id查找是非常有效的。如果您使用的是Gremlin Server,则对Gremlin Server的每个请求都被视为单个事务。您可以在一个请求(带有绑定)上传递Gremlin查询中的多个语句,而不是发送多个请求。用分号分隔Gremlin查询中的语句。

l=[4200, 4355, 4676]; v=graph.vertices(4100).next(); l.each { v.addEdge("knows", graph.vertices(it).next()) }
殳勇
2023-03-14

我有一个类似的问题。使用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'))
勾学博
2023-03-14

使用最新的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]

现在在单个遍历中添加边:

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]

这显示了在遍历中使用加法作为副作用的另一个示例。

 类似资料:
  • 我在我的应用程序中使用gremlin REST服务器,我想在单个查询中为一个顶点创建多个边。我有从哪里创建边缘到单个顶点的顶点ID列表。 对于eg-g.V(12,13,14,15)。添加(“使用”,g.V(100)) 我已经尝试了许多遍历步骤,但无法使其工作。

  • 我正在尝试向gremlin顶点添加多个属性。每次我都有不同数量的属性和不同的属性,所以我需要根据Map使查询动态以创建或更新属性。我发现了这个gremlin python-将多个但未知数量的属性添加到顶点,并尝试做同样的事情,但我实例化了一个jansugraph,但我得到了一个错误。任何想法都将非常受欢迎。 下面是直接用gremlin控制台写的,然后我会翻译成java代码。 而我得到的错误是 任何

  • 我正在使用Gremlin/Tinkerpop 3查询存储在TitanDB中的图形。 该图包含具有属性(例如“描述”)的用户顶点和表示用户之间关系的边。 我想使用Gremlin按属性获取1)用户和2)与其他用户(例如,id=123)的关系数(在这种情况下为任何类型)。为了实现这一点,我使用Gremlin 3中的操作,如下所示: 除非返回多个用户顶点,否则此查询工作正常,例如,因为多个用户的描述中有“

  • 我正在使用React,使用NodeJS将数据发送到我的PostgreSQL数据库。我的songs表中有一个外键,它引用了albums表中的id。我的问题是,如何将我第一次插入的id返回到第二次插入的相册中?以下是我目前的代码: 我还没有将专辑id添加到我的歌曲插入中。我在等着看如何把唱片id的值输入到我的第二个插页中?

  • 我有一个云Firestore DB,其结构如下: null null 有人能想出一个优雅的解决这个问题的办法吗?