在neo4j中是否存在类似于mongodb的$ inc的增量方法?

时间:2012-11-22 13:43:43

标签: neo4j

我在节点中有一个点属性,我想在每次玩家获得积分时递增。由于可以同时进行多个更新,因此我希望有一个增量更新查询以避免并发问题。例如如果两个请求同时获取节点并将每个点更新了+5,那么它将增加+5而不是正确的+10。

我看到github中存在一个与此相关的问题#768,https://github.com/neo4j/community/issues/768,但除了在应用程序端实现乐观并发或单个队列之外,我没有看到答案。 / p>

如果乐观并发是答案,那么我可以利用数据库级别的某些东西吗?

2 个答案:

答案 0 :(得分:0)

您可以做的是在阅读之前锁定节点,如下所示:

Transaction tx = db.beginTx();
try
{
    tx.acquireWriteLock( myNode );
    int count = (Integer) myNode.getProperty( "count", 0 );
    myNode.setProperty( "count", count + 5 );
    tx.success();
}
finally
{
    tx.finish();
}

答案 1 :(得分:0)

我找不到我提出的github问题(github repo已经移动了。)但是,答案是,这不会被添加到REST API中。