是否可以判断 Gremlin Drop() 步骤是否做了任何事情?

Is it possible to tell whether a Gremlin Drop() step did anything?

我有一个以 drop() 结尾的遍历来删除一个顶点。我希望能够区分删除顶点的 drop() 和不匹配任何内容的遍历之间的区别。

我尝试向其中一个较早的节点添加一个别名,并在遍历结束时 select()ing 它,但即使遍历确实匹配,这也不会 return 任何东西图。

例如

g.V('id', '1').as('flag')
.out('has_child')
.drop()
.select('flag')
.toList()

诀窍是 drop() 是一个过滤步骤,因此它会从遍历流中删除对象。您可以通过 sideEffect():

来解决这种情况
gremlin> g.V().has('person','name','marko')
==>v[1]
gremlin> g.V().has('person','name','marko').sideEffect(drop())
==>v[1]
gremlin> g.V().has('person','name','marko')
gremlin>

顶点的 return 意味着它存在并被删除,但如果没有值被 returned 那么它一开始就不存在而被删除。