sorting - 如何使用 Gremlin 对 Noe4j 结果进行排序和限制?

标签 sorting graph neo4j gremlin

这是使用 Gremlin 对 Neo4j 图表结果进行排序(排序)的方法:

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]

它会抛出一个错误...

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)

最佳答案

我花了一段时间才弄清楚像 sort 这样的原生 Groovy 方法不返回管道,而是返回迭代器、可迭代对象等。因此,将这些对象之一转换回管道流您需要使用_():

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

关于sorting - 如何使用 Gremlin 对 Noe4j 结果进行排序和限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367331/

相关文章:

arrays - 如何根据 tcl 关联数组的键对它进行排序?

neo4j - 优化这个 Neo4J Cypher 查询

c++ - 从起点遍历图形并在起点结束 C++

ios - 在 X 轴核心图上使用纪元时间

neo4j - Spring Data Neo4j - 如何让 WrappingNeoServerBootstrapper 监听 0.0.0.0

java - Neo4j-reco : Engine FriendsComputingEngine wasn't found on the classpath

objective-c - 将 nil 值行始终排序到 nstableview 列的底部

java - 为什么array = array1 等于array1 = array?

algorithm - Scala - 基于 Future 结果谓词排序

c++ - 如何在 LLVM IR 级别找到出现在两个特定基本 block 之间的所有基本 block ?