如何从 Gremlin (Tinkerpop) 中提取原始值进行比较或操作

How to extract raw values for comparison or manipulation from Gremlin (Tinkerpop)

我知道我在这里遗漏了一些明显的东西。我正在尝试使用 Gremlin 从 TitanDB 中提取值,以便在 Groovy.

中比较它们
graph = TinkerFactory.createModern()
g = graph.traversal(standard())
markoCount = g.V().has('name','marko').outE('knows').count()
lopCount = g.V().has('name','lop').outE('knows').count()
if(markoCount > lopCount){
// Do something
}

但显然我实际上(错误地)在这里做的是比较显然行不通的遍历步骤:

Cannot compare org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal with value '[TinkerGraphStep(vertex,[name.eq(marko)]), VertexStep(OUT,[knows],edge), CountGlobalStep]' and org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal with value '[TinkerGraphStep(vertex,[name.eq(lop)]), VertexStep(OUT,[knows],edge), CountGlobalStep]'

我在从属性中提取值以用于 Groovy 时也遇到了同样的问题。我在 docs 中没有看到任何指示如何设置原始值的信息。

我以后可以在 Groovy 代码中使用的来自 Gremlin 的 return 实际值需要什么?

搞清楚了,我需要 next():

graph = TinkerFactory.createModern()
g = graph.traversal(standard())
markoCount = g.V().has('name','marko').outE('knows').count().next()
lopCount = g.V().has('name','lop').outE('knows').count().next()
if(markoCount > lopCount){
// Do something
}