【问题标题】:Upsert properties using Gremlin使用 Gremlin 插入属性
【发布时间】:2020-05-07 13:55:38
【问题描述】:

我正在使用 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))

    但是我遇到了一个异常“无法定位方法:DefaultGraphTraversal.max”

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

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

谢谢!

【问题讨论】:

  • 我为max 问题提供了解决方案。 sack 有什么问题?
  • 我用 sum 替换了最大值,它起作用了!谢谢!

标签: gremlin tinkerpop3 amazon-neptune gremlinpython


【解决方案1】:

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

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

你可以这样做

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2021-08-27
    相关资源
    最近更新 更多