2012-04-28 12 views
10

Così si può ordinare (ordine) risultati grafico Neo4j usando Gremlin:Come ordinare AND limitare il risultato di Noe4j usando Gremlin?

g.v(id).out('knows').sort{it.name} 

o

g.v(id).out('knows').sort{a,b -> a.name <=> b.name} 

Questo è come limitare risultato in offset/saltare e limitazioni:

g.v(id).out('knows')[0..9] 

Tuttavia se si combinano entrambi i tipi e limite

g.v(id).out('knows').sort{it.name}[0..9] 

sarebbe genera un errore ...

javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList$ListItr.getAt() is applicable for argument types: (groovy.lang.IntRange) values: [0..9] 
Possible solutions: getAt(java.lang.String), getAt(int), next(), mean(), set(java.lang.Object), putAt(java.lang.String, java.lang.Object) 

risposta

14

ci ho messo un po 'per capire che i metodi nativi Groovy come sorta non restituiscono Tubi, ma iteratori, iterables, ecc Come tale, a convertire uno di questi oggetti di nuovo in una tubazione di scorrimento è necessario utilizzare _():

g.v(id).out('knows').sort{it.name}._()[0..9] 
0

ho avuto problema simile, ma con except(sth).unique() e limitare [0..5]. Nel mio caso:

ERRORE:

except(xxx).unique()[0..5] 

funziona bene:

except(sth).unique().findAll()[0..5] 

funziona bene anche con sort {}:

.unique().findAll().sort{it.sth}[0..5] 

(risposta Alexei Tenitski è troppo buono)

Problemi correlati