我正在尝试使用带有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 指定我想要的结果,这无济于事。谢谢!
从代码中使用 Gremlin 时,您需要始终以终端步骤结束查询,例如toList
、next
或iterate
等。您看到的只是查询/遍历的字节码"字符串"形式,因为由于缺少终端步骤,查询实际上并未执行。搜索学生时,您还需要使用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']