Graph Gremlin,在属性empNo和mgrno匹配时连接相同类型的顶点并添加边

Graph Gremlin,在属性empNo和mgrno匹配时连接相同类型的顶点并添加边,graph,titan,gremlin,vertex,Graph,Titan,Gremlin,Vertex,我有一些顶点的属性,比如 vertex(“empNo”、“age”、“Date”、“mgrNo”) a(101,20,'dd-mm-yy',0) b(102,22,'dd-mm-yy',101) 由于b的经理与a ie的经理匹配,a是b的经理。 我必须在a和b之间加一条边。 请告诉我如何在gremlin中执行此操作 我假设您希望迭代所有顶点。您可以很容易地通过副作用来实现: g.V.has("mgrNo",neq,0).sideEffect{ g.V.has("empNo",it.mgrNo

我有一些顶点的属性,比如
vertex(“empNo”、“age”、“Date”、“mgrNo”)
a(101,20,'dd-mm-yy',0)
b(102,22,'dd-mm-yy',101)
由于b的经理与a ie的经理匹配,a是b的经理。 我必须在a和b之间加一条边。
请告诉我如何在gremlin中执行此操作

我假设您希望迭代所有顶点。您可以很容易地通过
副作用来实现:

g.V.has("mgrNo",neq,0).sideEffect{
  g.V.has("empNo",it.mgrNo).next().addEdge("manages",it)
}

请注意,如果您使用的是支持事务的图形,则需要
commit()
您的更改才能持久化它们

嗨,斯蒂芬,这只是增加了一个优势。假设我有像empNo、姓名、年龄、经理101、Alice、32,0 102、Bob、30101 103、Mary、28101 104、Lisa、25102这样的数据。我想遍历每个顶点并添加关系,如果该顶点的mgrNo不是零,代码对我来说仍然正确。它迭代所有顶点,查找拥有经理的员工(即,mgrNo!=0),并为每个顶点在该员工和经理之间添加一个“manages”边。如果您尝试了上述方法,但失败了,请以groovy脚本的形式提供一些示例数据,我可以将其粘贴到Gremlin控制台中,我可以自己进行测试。它现在工作正常。非常感谢您的回复。代码可以很好地处理少量顶点,但是如果我有像16k顶点这样的顶点,当我运行上述代码时,它只添加一条边并停止。为什么会这样。我使用BatchGraph加载数据。
BatchGraph
用于一种非常特定的数据加载用例,这种加载发生在蓝图级别。我认为,如果您尝试在它上面运行Gremlin(这就是上面的代码所做的),您可能会遇到问题,因为Gremlin所需的所有蓝图方法/功能都没有在
BatchGraph
中实现。