如何在 Gremlin 图中递增边缘属性计数器



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

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

我有一个执行类似操作的查询,但似乎仅适用于顶点属性:

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

有没有办法使上述查询与边缘属性兼容?

谢谢!

它在边缘上工作正常,但对于边缘Cardinalityproperty()没有过载。

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 直接让你的增量变得更好。在写入之前始终会有一个读取,除非基础图形数据库具有一些用于执行计数器的本机方法。

最新更新