【问题标题】:How to increment an edge property counter in Gremlin graph如何在 Gremlin 图中增加边缘属性计数器
【发布时间】:2019-05-17 04:02:40
【问题描述】:

我有一个带有边缘的图,每个边缘都有一个“计数”属性,用于在其两个顶点之间进行转换的次数。 每当进行转换时,我都想增加该值;有没有有效的方法来做到这一点?

我想避免读取值、递增然后更新,因为增量可能来自多个来源,我想避免出现竞争情况。

我有一个类似的查询,但似乎只适用于顶点属性:

g.V('10b56175-b3e5-db7c-6d1f-04f9fe7caba8').property(single, 'count', union(values('count'), constant(1.0)).sum()).valueMap()

有什么方法可以使上述查询与边缘属性兼容?

谢谢!

【问题讨论】:

    标签: gremlin


    【解决方案1】:

    它在边缘上工作得很好,但是property()Cardinality 的边缘没有过载。

    gremlin> g.E(11).property('count', union(values('count'), constant(1.0)).sum()).valueMap()
    ==>[count:1.0,weight:0.4]
    gremlin> g.E(11).property('count', union(values('count'), constant(1.0)).sum()).valueMap()
    ==>[count:2.0,weight:0.4]
    gremlin> g.E(11).property('count', union(values('count'), constant(1.0)).sum()).valueMap()
    ==>[count:3.0,weight:0.4]
    

    我认为你不能直接通过 Gremlin 让你的增长变得更好。总会有先读后写,除非你的底层图数据库有一些本地方法来做计数器。

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      相关资源
      最近更新 更多