使用 Gremlin 更新插入属性

Upsert properties using Gremlin

我正在使用 python 和 AWS Neptune。

我正在使用 ID 为 "upsert" 的模式:

g.V().has(node_type,'id',node.id).fold()
.coalesce(__.unfold(),__.addV('node_type').property('id',node.id)).
property('property','first').next()

确实添加了顶点(或从图中选择)并添加了 属性。 现在我想添加两个我没有添加的属性:

  1. 我要加"max"属性。如果顶点有 属性,我想取它的最大值和值“10”(例如)。试图将以下语句添加到我的查询中,但它不起作用:

    property('time_max', __.max(__.values('max'), 10))

    但是我遇到了一个异常 "Could not locate method: DefaultGraphTraversal.max"

  2. 另一个 属性 以相同的方式递增 "count" 属性。我在 "sack" 方法上遇到了同样的异常。

如何添加这些属性?唯一的方法是获取顶点然后提交吗?我希望它尽可能高效。

谢谢!

max() 步骤用于查找流或集合中的最大值,例如在这个简单示例中:

gremlin> g.inject(1,2,3).max()
==>3  

你也可以这样做

union(values('max'),constant(10)).max()