例如,使用Tinkerpop的玩具图数据(graph = TinkerFactory.createModern()),我想做类似以下的事情:
g.V().hasLabel('person').has('name', 'marko').project('a', 'b').by().by(...)
我想使用第一遍遍的顶点的属性,并在查询里面使用第二遍()。
像这样的伪代码:
by(__.V().has(hasLabel('person').has('name', [property-from-first-traversal])))
在单独的查询中这可能更容易,但我想在一个查询中执行此操作 - 类似于SQL中的子查询。
答案 0 :(得分:1)
你可能正在寻找这样的东西:
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.addV('person').property('name','marko')
==>v[13]
gremlin> g.V().has('person','name', 'marko').
project('a', 'b').
by().
by(__.as('x').V().hasLabel('person').where(eq('x')).by('name').count())
==>[a:v[1],b:2]
==>[a:v[13],b:2]
但是,请注意where()
过滤器,到目前为止,没有任何提供程序(我知道)会将其转换为索引查找,因此它将扫描您的所有person
个顶点曲线图。