2

我知道我在这里遗漏了一些明显的东西。我正在尝试使用 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
}

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

无法将 org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal 与值 '[TinkerGraphStep(vertex,[name.eq(marko)]), VertexStep(OUT,[knows],edge), CountGlobalStep] 进行比较' 和 org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal 值为 '[TinkerGraphStep(vertex,[name.eq(lop)]), VertexStep(OUT,[knows],edge), CountGlobalStep] '

我在从属性中提取值以在 Groovy 中使用时也遇到了同样的问题。我在文档中没有看到任何指示如何设置这样的原始值的内容。

从 Gremlin 返回实际值需要什么,以便稍后在我的 Groovy 代码中使用?

4

1 回答 1

2

想通了,我需要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
}
于 2016-04-22T19:23:32.367 回答