1

我需要阅读文档并自动增加一个值。我知道 ReactiveMongo 提供FindAndModify并查看了这个示例。如果您查看findAndModify示例中的方法,您会发现它只是查找与条件匹配的文档,然后使用新值更新它们。

如何在旧值的基础上设置新值?换句话说,我需要读取一个值,递增它,并最终[原子地]更新文档:

def incrementValue() = {
  val selector = BSONDocument("name" -> "Joe")
  val modifier = BSONDocument(
    "$set" -> BSONDocument("version" -> ???)) // how do I increment the old
                                              // value of 'version' by 1? 
  val command = FindAndModify(
    collection.name,
    selector,
    Update(modifier, false))
4

1 回答 1

2

使用$inc而不是$set. 在这里您可以找到文档。当然它也适用于findAndModify.

于 2014-02-03T08:56:41.757 回答