Joe*_*iah 2 graph-databases gremlin
我是gremlin的新手,在访问此网站时,我碰到了take()一步。它具有相同的输出,limit()这使我想知道两者之间的区别是什么。我对此事找不到任何澄清。谢谢!
不幸的是,这有点令人困惑。take()这不是Gremlin的步骤。而是将Groovy函数应用于遍历的结尾(本身是Iterator)。可以take()在遍历结束时使用的几乎相同的方式使用其他Groovy函数:
gremlin> g.V().take(1)
==>v[1]
gremlin> g.V().collect{it.value('name')}
==>marko
==>vadas
==>lop
==>josh
==>ripple
==>peter
Run Code Online (Sandbox Code Playgroud)
当然,一旦使用Groovy函数处理管道,就无法返回Gremlin步骤:
gremlin> g.V().take(1).out()
No signature of method: org.codehaus.groovy.runtime.DefaultGroovyMethods$TakeIterator.out() is applicable for argument types: () values: []
Possible solutions: sum(), sort(), sort(groovy.lang.Closure), sort(java.util.Comparator), count(java.lang.Object), count(groovy.lang.Closure)
Type ':help' or ':h' for help.
Display stack trace? [yN]
Run Code Online (Sandbox Code Playgroud)
这就是为什么您希望limit(1):
gremlin> g.V().limit(1).out()
==>v[3]
==>v[2]
==>v[4]
Run Code Online (Sandbox Code Playgroud)
当然,如果您不使用Groovy,而是在Java环境中进行编程,那么很明显,take()其他功能将不再可用。
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |