例如,这是我的顶点:
[label:songs,id:4336,name:testsong123,likeCount:0]
我必须做什么:
我想增加" likeCount"当用户喜欢这首歌时 减少" likeCount"每当用户不同于歌曲时。
我现在在做什么:
默认情况下,我正在做的是通过id获取顶点并添加" + 1" to" likeCount",然后更新到database.similar进行减量,将-1添加到" likeCount"并更新到数据库。
替代: 有没有办法在没有来电的情况下增加或减少。
答案 0 :(得分:3)
如果你没有对顶点的引用,那么你别无选择,只能查找它(即得到它)。查找不应该是一个大问题,因为您打算通过id查找,这不应该是非常昂贵的。
答案 1 :(得分:0)
这是我用Java编写的DSL,我想您可以做类似的事情。
valueTraversal可以替换为constant(1)或traversal.count()。
public default GraphTraversal<S, ?> incrementProperty(final String propertyKey,
final GraphTraversal<?,?> valueTraversal) {
return property(Cardinality.single, propertyKey,
__.union(
__.values(propertyKey),
valueTraversal)
.sum());
}
public default GraphTraversal<S, ?> decrementProperty(final String propertyKey,
final GraphTraversal<?,?> valueTraversal) {
return property(Cardinality.single, propertyKey,
__.union(
__.values(propertyKey),
valueTraversal).math("_ * -1")
.sum());
}