以下示例在使用Gremlin 3.4.1 npm软件包的Node.js中不适用于我:
g.V().has('person','name','bill').tryNext().orElseGet{g.addV('person').property('name','bill').next()}
我收到一个TypeError说tryNext()
不是一个函数。我在做什么错了?
import {driver, structure} from 'gremlin';
import DriverRemoteConnection = driver.DriverRemoteConnection;
import Graph = structure.Graph;
const g = new Graph().traversal().withRemote(new DriverRemoteConnection('ws://localhost:8182/gremlin'));
console.log(g.V().toList()); <= working
现在在该代码中使用上面的行将不起作用,但是在Gremlin控制台中它确实起作用。
答案 0 :(得分:2)
试图调用一个不存在的函数(似乎与Gremlin文档中所述的一样):
tryNext()
将返回Optional
,因此是hasNext()
/next()
的组合(仅JVM语言支持)。
http://tinkerpop.apache.org/docs/current/reference/#terminal-steps
注意事项:从未使用过TinkerPop,从未使用过Gremlin。但是我知道如何使用网络。可能是错误的,但是文档看起来确实很清楚。
答案 1 :(得分:0)
如果Dave提到tryNext()
不被支持。
您可以重写查询以与其他gremlin步骤相同:
g.V().has('person','name','bill').fold().coalesce(unfold(),g.addV('person').property('name','bill')).next()