簡體   English   中英

Gremlin:如何將多個頂點選擇()到一個集合中,然后獲得具有最高屬性值的頂點

[英]Gremlin: How to select() multiple vertices into a collection then get the one with the highest property value

像這樣遍歷:

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

在這一點上,現在我已經存儲並選擇了“ a”和“ b”,我想標識具有較高屬性值的a.score==2 (例如a.score==2b.score==4 ,所以選擇“ b')的

我該怎么做?

如果為路徑上的每個候選者都賦予相同的標簽會更容易:

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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM