包括 root 在内的 Gremlin BFS 枚举
Gremlin BFS enumeration including root
我想在以下 Gremlin 表达式的输出中包含根节点:
gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.v(1).as('x').out.loop('x'){true}{true}
==>v[2]
==>v[4]
==>v[3]
==>v[5]
==>v[3]
因此输出也包括 v[1]。我怎样才能做到这一点?
在 TinkerPop 中有几个可能的解决方案 2.x 第一个使用 store():
gremlin> x=[];g.v(1).store(x).as('x').out.loop('x'){true}{true}.store(x).iterate();x
==>v[1]
==>v[3]
==>v[2]
==>v[4]
==>v[3]
==>v[5]
这是第二个没有明确强制创建使用 transform
和闭包的外部变量:
gremlin> g.v(1).transform{[it] + (it._().as('x').out.loop('x'){true}{true}.toList())}.scatter()
==>v[1]
==>v[3]
==>v[2]
==>v[4]
==>v[3]
==>v[5]
对于使用 TinkerPop 3.x 的用户,只需将 emit()
放在 repeat()
前面:
gremlin> g.V(1).emit().repeat(out())
==>v[1]
==>v[3]
==>v[2]
==>v[4]
==>v[5]
==>v[3]
我想在以下 Gremlin 表达式的输出中包含根节点:
gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.v(1).as('x').out.loop('x'){true}{true}
==>v[2]
==>v[4]
==>v[3]
==>v[5]
==>v[3]
因此输出也包括 v[1]。我怎样才能做到这一点?
在 TinkerPop 中有几个可能的解决方案 2.x 第一个使用 store():
gremlin> x=[];g.v(1).store(x).as('x').out.loop('x'){true}{true}.store(x).iterate();x
==>v[1]
==>v[3]
==>v[2]
==>v[4]
==>v[3]
==>v[5]
这是第二个没有明确强制创建使用 transform
和闭包的外部变量:
gremlin> g.v(1).transform{[it] + (it._().as('x').out.loop('x'){true}{true}.toList())}.scatter()
==>v[1]
==>v[3]
==>v[2]
==>v[4]
==>v[3]
==>v[5]
对于使用 TinkerPop 3.x 的用户,只需将 emit()
放在 repeat()
前面:
gremlin> g.V(1).emit().repeat(out())
==>v[1]
==>v[3]
==>v[2]
==>v[4]
==>v[5]
==>v[3]