Ale*_*ski 11 sorting graph neo4j gremlin
这是你如何使用Gremlin对Neo4j图表进行排序(排序)的方法:
g.v(id).out('knows').sort{it.name}
Run Code Online (Sandbox Code Playgroud)
要么
g.v(id).out('knows').sort{a,b -> a.name <=> b.name}
Run Code Online (Sandbox Code Playgroud)
这是如何使用偏移/跳过和限制来限制结果:
g.v(id).out('knows')[0..9]
Run Code Online (Sandbox Code Playgroud)
但是,如果将sort和limit结合使用
g.v(id).out('knows').sort{it.name}[0..9]
Run Code Online (Sandbox Code Playgroud)
它会引发错误......
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)
Run Code Online (Sandbox Code Playgroud)
Ale*_*ski 15
我花了一段时间才发现像sort这样的原生Groovy方法不会返回Pipes,而是返回迭代器,迭代等.因此,要将其中一个对象转换回Pipeline流,您需要使用_():
g.v(id).out('knows').sort{it.name}._()[0..9]
Run Code Online (Sandbox Code Playgroud)