4

Neptune 目前只支持 OLTP 类型的图遍历查询?

但是从文档中:

事务 Neptune 在每次 Gremlin 遍历开始时打开一个新事务,并在成功完成遍历后关闭事务。出现错误时事务回滚。

由分号 (;) 或换行符 (\n) 分隔的多个语句包含在单个事务中。除了最后一个语句之外的每个语句都必须以要执行的 next() 步骤结束。只返回最终的遍历数据。

不支持使用 tx.commit() 和 tx.rollback() 的手动事务逻辑。

由分号或换行符分隔的多个语句在单个事务中执行。那么,您可以在每个事务中执行多个查询吗?例如,单个脚本中的多个 .drop() 查询?

g.V().has(id,'1').drop();
g.V().has(id,'2').drop();

通过上面的尝试,只执行了最后一个查询(只删除了 id='2' 的顶点)。

但是对于添加顶点,它可以工作:

g.addV('item').property(id,'3').next()";
g.addV('item').property(id,'4').next()";

两个顶点都被添加。

是否支持单个事务中的多个删除查询?

4

1 回答 1

6

只是一个猜测,但我认为您可能需要iterate()遍历,因此:

g.V().has(id,'1').drop().iterate();
g.V().has(id,'2').drop().iterate();

鉴于您的示例addV()以及您在最后一次遍历中看到的行为drop()是唯一自动迭代的行为,这与 Gremlin Server 通常处理脚本请求的方式一致。我猜海王星也会以同样的方式工作。

于 2018-09-24T12:51:25.753 回答