Не думаю, что я бы попробовал это на большом графике, но для графа скромного размера вы можете попробовать использовать шаг index
. Ниже приведен пример, в котором используется набор данных о воздушных маршрутах.
index
добавляет в список увеличивающееся значение индекса.
gremlin> g.V().limit(5).fold().index().unfold()
==>[v[0],0]
==>[v[1],1]
==>[v[2],2]
==>[v[3],3]
==>[v[4],4]
Используя область local
, вы можете получить доступ к членам из этого списка.
gremlin> g.V().limit(5).fold().index().unfold().limit(local,1)
==>v[0]
==>v[1]
==>v[2]
==>v[3]
==>v[4]
Используя эти методы, мы могли бы использовать значение индекса для добавления нового свойства в каждый аэропорт. В этом примере я только что выполнил первые 5.
gremlin> g.V().limit(5).
fold().index().unfold().as('list').
limit(local,1).
property('index',select('list').tail(local))
==>v[0]
==>v[1]
==>v[2]
==>v[3]
==>v[4]
И проверьте результаты.
gremlin> g.V(1).valueMap()
==>[country:[US],code:[ATL],longest:[12390],city:[Atlanta],index:[1],lon:[-84.4281005859375],type:[airport],elev:[1026
],icao:[KATL],region:[US-GA],runways:[5],lat:[33.6366996765137],desc:[Hartsfield - Jackson Atlanta International Airpo
rt]]
gremlin> g.V(2).valueMap()
==>[country:[US],code:[ANC],longest:[12400],city:[Anchorage],index:[2],lon:[-149.996002197266],type:[airport],elev:[15
1],icao:[PANC],region:[US-AK],runways:[3],lat:[61.1744003295898],desc:[Anchorage Ted Stevens]]