Gremlin drop 只删除子图的第一个顶点
Gremlin drop deletes only the first vertex of the sub-graph
我有一个图,其中 A 连接到 B、C、D 有边。
我正在使用以下命令删除 A 及其连接的顶点。
g.V('A').
union(__(),
repeat(out()).emit()).drop()
但它只删除了 A.
当我 运行 它没有 drop() 它 returns 所有子图顶点的列表。
我正在使用 tinkerpop console/server 版本 3.4.9.
您需要在调用 drop 之前收集联合步骤的结果。这是稍微修改过的查询。
gremlin> g.addV('A').as('a').
......1> addV('B').as('b').
......2> addV('C').as('c').
......3> addV('D').as('d').
......4> addE('knows').from('a').to('b').
......5> addE('knows').from('b').to('c').
......6> addE('knows').from('c').to('d')
==>e[41][37-knows->38]
gremlin> g.V().hasLabel('A').
......1> union(identity(),
......2> repeat(out()).emit()).fold()
==>[v[35],v[36],v[37],v[38]]
gremlin> g.V().hasLabel('A').
......1> union(identity(),
......2> repeat(out()).emit()).fold().unfold().drop()
gremlin> g
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
另请注意,通过将 emit
移到 repeat
之前并使用 store
.[=16=,无需 union
步骤即可完成此操作]
g.V().hasLabel('A').
emit().
repeat(store('v').out()).
cap('v').
unfold().
drop()
我有一个图,其中 A 连接到 B、C、D 有边。
我正在使用以下命令删除 A 及其连接的顶点。
g.V('A').
union(__(),
repeat(out()).emit()).drop()
但它只删除了 A.
当我 运行 它没有 drop() 它 returns 所有子图顶点的列表。
我正在使用 tinkerpop console/server 版本 3.4.9.
您需要在调用 drop 之前收集联合步骤的结果。这是稍微修改过的查询。
gremlin> g.addV('A').as('a').
......1> addV('B').as('b').
......2> addV('C').as('c').
......3> addV('D').as('d').
......4> addE('knows').from('a').to('b').
......5> addE('knows').from('b').to('c').
......6> addE('knows').from('c').to('d')
==>e[41][37-knows->38]
gremlin> g.V().hasLabel('A').
......1> union(identity(),
......2> repeat(out()).emit()).fold()
==>[v[35],v[36],v[37],v[38]]
gremlin> g.V().hasLabel('A').
......1> union(identity(),
......2> repeat(out()).emit()).fold().unfold().drop()
gremlin> g
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
另请注意,通过将 emit
移到 repeat
之前并使用 store
.[=16=,无需 union
步骤即可完成此操作]
g.V().hasLabel('A').
emit().
repeat(store('v').out()).
cap('v').
unfold().
drop()