首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Gremlin:如何选择()多个顶点到一个集合中,然后获得属性值最高的顶点

Gremlin:如何选择()多个顶点到一个集合中,然后获得属性值最高的顶点
EN

Stack Overflow用户
提问于 2018-08-05 07:12:06
回答 1查看 3.1K关注 0票数 2

像这样进行遍历:

g.V().as('a')......has(name,'test').as('b').....select('a','b')

现在,我已经存储并选择了'a‘和'b',我想识别具有较高属性值的那个(例如,a.score==2b.score==4,所以选择'b')

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51690217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档