1

我正在尝试使用带有 Python 3.7 的 AWS Lambda 函数来访问我的 Neptune DB。对于一个非常简单的测试,我的 lambda 中有以下代码。

    g = graph.traversal().withRemote(DriverRemoteConnection('ws://[endpoint]:8182/gremlin','g'))
    g.addV('student').property('name', 'Jeffery').property('GPA', 4.0)

    students = g.V('student').values('name')
    print(numVert)

在尝试了许多不同的遍历之后,我从 print 语句中得到的唯一值是 [['V', 'student'], ['values', 'name']]我想要执行的命令的类似列表表示,而不是数据本身(如 Jeffrey)。

我错过了一些明显的错误吗?我尝试使用 toList 指定我想要的结果,但这没有帮助。谢谢!

4

1 回答 1

3

从代码中使用 Gremlin 时,您需要始终以终端步骤结束查询,例如toList,nextiterate等。您看到的只是查询/遍历的字节码“到字符串”形式,因为查询实际上并未执行,因为缺少终端步骤。您还需要hasLabel在搜索学生时使用。该V()步骤采用一个或多个 ID 的可选列表,而不是标签。

g.addV('student').property('name', 'Jeffery').property('GPA', 4.0).next()
students = g.V().hasLabel('student').values('name').toList()
print(students)

这是您使用 Gremlin Python 运行的查询

>>> g.addV('student').property('name', 'Jeffery').property('GPA', 4.0).next()
v[9eb98696-d979-c492-ab2d-a36a219bac6c]

>>> students = g.V().hasLabel('student').values('name').toList()

>>> print(students)
['Jeffery']
于 2020-07-02T01:13:35.157 回答