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

How to handle Transaction (Rollback and Commit) in Gremlin - AWS Neptune

如何在 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.

文档说,Multiple statements separated by a semicolon (;) or a newline character (\n) are included in a single transaction.

如何在GremlinPython中处理单笔交易for loop

任何 suggestion/Help?

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

综上所述,您真的不需要使用 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')