使用 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()
确实添加了顶点(或从图中选择)并添加了 属性。
现在我想添加两个我没有添加的属性:
我要加"max"属性。如果顶点有 属性,我想取它的最大值和值“10”(例如)。试图将以下语句添加到我的查询中,但它不起作用:
property('time_max', __.max(__.values('max'), 10))
但是我遇到了一个异常 "Could not locate method: DefaultGraphTraversal.max"
另一个 属性 以相同的方式递增 "count" 属性。我在 "sack" 方法上遇到了同样的异常。
如何添加这些属性?唯一的方法是获取顶点然后提交吗?我希望它尽可能高效。
谢谢!
max() 步骤用于查找流或集合中的最大值,例如在这个简单示例中:
gremlin> g.inject(1,2,3).max()
==>3
你也可以这样做
union(values('max'),constant(10)).max()
我正在使用 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()
确实添加了顶点(或从图中选择)并添加了 属性。 现在我想添加两个我没有添加的属性:
我要加"max"属性。如果顶点有 属性,我想取它的最大值和值“10”(例如)。试图将以下语句添加到我的查询中,但它不起作用:
property('time_max', __.max(__.values('max'), 10))
但是我遇到了一个异常 "Could not locate method: DefaultGraphTraversal.max"
另一个 属性 以相同的方式递增 "count" 属性。我在 "sack" 方法上遇到了同样的异常。
如何添加这些属性?唯一的方法是获取顶点然后提交吗?我希望它尽可能高效。
谢谢!
max() 步骤用于查找流或集合中的最大值,例如在这个简单示例中:
gremlin> g.inject(1,2,3).max()
==>3
你也可以这样做
union(values('max'),constant(10)).max()