像这样进行遍历:
g.V().as('a')......has(name,'test').as('b').....select('a','b')
现在,我已经存储并选择了'a‘和'b',我想识别具有较高属性值的那个(例如,a.score==2
,b.score==4
,所以选择'b')
我该怎么做呢?
发布于 2018-08-06 04:37:40
如果您给路径上的每个候选人都使用相同的标签,则会更容易:
g.V().as('a')....
has('name,'test').as('a').
select(all, 'a').
order(local).
by('score', decr).
limit(local, 1)
这是它在现代玩具图上的样子:
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().as('a').out('knows').as('a').select(all, 'a')
==>[v[1],v[2]]
==>[v[1],v[4]]
gremlin> g.V().as('a').out('knows').as('a').
......1> select(all, 'a').
......2> by(unfold().valueMap(true).fold())
==>[[label:person,name:[marko],age:[29],id:1],[label:person,name:[vadas],age:[27],id:2]]
==>[[label:person,name:[marko],age:[29],id:1],[label:person,name:[josh],age:[32],id:4]]
此时,我们知道第一个路径的预期结果是v[1]
(29 > 27),第二个路径的预期结果是v[4]
(32 > 29)。
gremlin> g.V().as('a').out('knows').as('a').
......1> select(all, 'a').
......2> order(local).
......3> by('age', decr).
......4> limit(local, 1)
==>v[1]
==>v[4]
https://stackoverflow.com/questions/51690217
复制相似问题