我有一个带有边的图形,每个边缘都有一个"count"属性,表示在其两个顶点之间进行转换的次数。 每当进行转换时,我都想增加该值;有没有有效的方法来做到这一点?
我想避免读取值,递增,然后更新,因为增量可能来自多个来源,我想避免争用条件情况。
我有一个执行类似操作的查询,但似乎仅适用于顶点属性:
g.V('10b56175-b3e5-db7c-6d1f-04f9fe7caba8').property(single, 'count', union(values('count'), constant(1.0)).sum()).valueMap()
有没有办法使上述查询与边缘属性兼容?
谢谢!
它在边缘上工作正常,但对于边缘Cardinality
property()
没有过载。
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 直接让你的增量变得更好。在写入之前始终会有一个读取,除非基础图形数据库具有一些用于执行计数器的本机方法。