我有一个图形,其边缘各具有“ count”属性,以表示在其两个顶点之间进行过渡的次数。 每当进行转换时,我都想增加该值;有有效的方法吗?
我想避免读取值,先递增然后更新,因为增量可能来自多个来源,并且我想避免出现竞争情况。
我有一个执行类似操作的查询,但似乎仅对顶点属性有效:
g.V('10b56175-b3e5-db7c-6d1f-04f9fe7caba8').property(single, 'count', union(values('count'), constant(1.0)).sum()).valueMap()
有什么方法可以使上述查询与边属性兼容?
谢谢!
答案 0 :(得分:0)
它在边缘上工作正常,但是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来使增量更好。除非您的基础图形数据库具有某些用于计数器的本机方法,否则在写入之前总会有一读。