2

如何for在 gremlin 中编写循环?就像是:

for i=0;i<10:i++:
  println hello number i

我还尝试遍历节点并在每个节点上调用一个函数,例如(count):

gremlin> g.v(782).in
==> v[2746934]
==> v[2581232]
==> v[1554286]
==> v[780]
gremlin> g.v(78).in.loop(2){it.loops < 4}.count()
==> class java.lang.NullPointerException : null

我的主要目标是执行一个 for 循环并打印没有inE. 这意味着它们的度数为零。

4

2 回答 2

2

filter{!it.inE.hasNext()}由于不需要完整计数/迭代,因此效率更高。

于 2012-11-19T22:11:54.120 回答
1

如果您想遍历图中的所有节点以计算边缘中没有多少节点,您可以执行以下操作:

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.V.filter{!it.inE.hasNext()}.count()
==>2

如果您想执行一些副作用,例如“打印”,请使用副作用步骤:

gremlin> g.V.filter{!it.inE.hasNext()}.sideEffect{println it.name}
marko
==>v[1]
peter
==>v[6]

请注意,它打印了两次,因为 Gremlin 终端已经在为您打印,所以如果您在终端中,您不妨这样做:

gremlin> g.V.filter{!it.inE.hasNext()}.name                       
==>marko
==>peter
于 2012-11-17T10:52:25.593 回答