我需要阅读文档并自动增加一个值。我知道 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))