Graph 如何在Gremlin-AWS Neptune中处理事务(回滚和提交)

Graph 如何在Gremlin-AWS Neptune中处理事务(回滚和提交),graph,transactions,gremlin,amazon-neptune,gremlinpython,Graph,Transactions,Gremlin,Amazon Neptune,Gremlinpython,如何在Gremlin-AWS Neptune中处理事务(回滚和提交) In a request, I have two details, <student and List[Subject]> 1. Create student vertex with properties 2. Create Edge b/w class & student 3. Create a list of subjects vertex in for loop & edge b/w sub

如何在Gremlin-AWS Neptune中处理事务(回滚和提交)

In a request, I have two details, <student and List[Subject]>

1. Create student vertex with properties
2. Create Edge b/w class & student
3. Create a list of subjects vertex in for loop & edge b/w subject and student.

在一个请求中,我有两个细节,
1.使用属性创建学生顶点
2.创建边缘b/w类和学生
3.在循环和边的顶点中创建主题列表,包括主题和学生。
文档中说,
在一个事务中包含由分号(;)或换行符(\n)分隔的多个语句。

如何在
GremlinPython
中的单个事务中处理
for loop


有什么建议/帮助吗?

向服务器发送Gremlin查询的主要方法有三种。一种是纯文本。在这种情况下,可以在查询之间使用分号,并将它们视为单个事务。第二种方法是使用支持以字节码形式发送查询的Gremlin客户端驱动程序。在这种情况下,发送的每个查询都是一个事务。第三是使用小精灵会话。在这种情况下,您创建一个会话,然后发送一个或多个查询。整个会话被视为单个事务,仅在关闭会话时提交。在第三种情况下,您可以根据需要混合使用代码和查询

所有这些都说明,你真的不需要使用for循环,你可以一次发送所有东西。下面是一个简单的例子:

g.addV('root').property('data',9).as('root').
  addV('node').property('data',5).as('b').
  addV('node').property('data',2).as('c').
  addV('node').property('data',11).as('d').
  addV('node').property('data',15).as('e').
  addV('node').property('data',10).as('f').
  addV('node').property('data',1).as('g').
  addV('node').property('data',8).as('h').
  addV('node').property('data',22).as('i').
  addV('node').property('data',16).as('j').
  addE('left').from('root').to('b').
  addE('left').from('b').to('c').
  addE('right').from('root').to('d').
  addE('right').from('d').to('e').
  addE('right').from('e').to('i').
  addE('left').from('i').to('j').
  addE('left').from('d').to('f').
  addE('right').from('b').to('h').
  addE('left').from('c').to('g')

请注意,TnkerPop 3.5.0引入了一些改进的事务支持,但您需要等到Neptune等图形提供了对该功能的全面支持,TinkerPop提供了对所有编程语言的支持—目前它仅在Java中可用,作为一个开始: