2012-04-28 19 views
10

これは、あなたがグレムリンを使用してのNeo4jグラフから(オーダー)の結果を並べ替えることができる方法です。Gremlinを使用してNoe4j結果をソートして制限する方法は?

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

または

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

これは、オフセット/スキップおよび制限使用して結果を制限する方法である:

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

ソートとリミットの両方を組み合わせた場合

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

それはそれはソートのようなネイティブGroovyのメソッドは、パイプを返さないことを把握するために私にしばらく時間がかかったが、イテレータ、イテラブル、などこのように、へ...

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) 

答えて

14

をエラーをスローします私は同様の問題があったが、except(sth).unique()[0..5]を制限して

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

:バックあなたは_()を使用する必要があるパイプラインの流れにこれらのオブジェクトの1つを変換します。私の場合は :

ERROR:

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

作品FINE:

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

作品FINEもソート{}で:

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

(アレクセイTenitskiの答えはあまりにも良いです)

関連する問題