Gremlin 如何确定是否在“小精灵”中删除了顶点?

Gremlin 如何确定是否在“小精灵”中删除了顶点?,gremlin,Gremlin,我想尝试删除一个顶点,我想知道我是否删除了一些东西。 如果我这样做 g.V().has('name','deleteme').drop() 那我就没办法知道是否有一个顶点。我总是得到一个空的结果。有办法告诉我吗 我想我可以标记删除的数据,然后选择它 g.V().has('name','deleteme').as('deleted').drop().select('deleted') 但这给了我一个错误 未能执行查询:g.V().has('name','deleteme').as('deleted

我想尝试删除一个顶点,我想知道我是否删除了一些东西。 如果我这样做

g.V().has('name','deleteme').drop()

那我就没办法知道是否有一个顶点。我总是得到一个空的结果。有办法告诉我吗

我想我可以标记删除的数据,然后选择它

g.V().has('name','deleteme').as('deleted').drop().select('deleted')

但这给了我一个错误

未能执行查询:g.V().has('name','deleteme').as('deleted').drop().select('deleted'):脚本评估错误:
ActivityId:959af7a4-b955-4127-be46-2dc160dd4ece异常类型:GraphCompileException异常消息:
Gremlin查询编译错误:在当前执行管道的原始记录中找不到列引用R_0[“_值”]。来源:Microsoft.Azure.Graphs GremlinRequestId:959af7a4-b955-4127-be46-2dc160dd4ece上下文:graphcompute作用域:graphstg phyplan GraphEnterPropStatusCode:QuerySyntaxError HResult:0x8013150

有没有推荐的方法来实现这一点

(我正在使用Azure CosmosDB的C#SDK,如果这有什么不同的话)

拖放()步骤实际上是一个副作用和过滤步骤。这是一个副作用,因为它变异了数据库,而且是一个副作用,因为它只会杀死流中的任何遍历器。除非抛出异常,否则可以安全地假设数据已被删除(如果它首先存在的话——但这可能是您想要知道的)

以现代玩具图为例,我认为最简单的方法是使用
sideEffect()

gremlin> g.V().has('person','name','marko').sideEffect(drop()).constant('gone')
==>gone
gremlin> g.V().has('person','name','marko').sideEffect(drop()).constant('gone')
gremlin>
但我不确定CosmosDB是否支持这一步。我想你可以这样做,虽然不那么直观易读,但似乎完成了同样的事情:

gremlin> g.V().has('person','name','marko').union(constant('gone'),drop())
==>gone
gremlin> g.V().has('person','name','marko').union(constant('gone'),drop())
gremlin>