如何在Gremlin中将tryNext()与Node.js一起使用?

时间:2019-05-27 14:27:28

标签: node.js gremlin

以下示例在使用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控制台中它确实起作用。

2 个答案:

答案 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()