MongoDB - 如何原子地增加数字并获取新值

Ivo*_*sch 4 javascript concurrency atomic mongoose mongodb

基本上我需要增加文档中的计数器并获取新值,但这必须以原子方式工作。

目前我正在使用命令:

.updateOne({_id: ObjectId('5ed7f23789bcd51e9c6a82e0')}, {$inc: {nextTicket: 1}})
Run Code Online (Sandbox Code Playgroud)

但我找不到如何立即获取新的增量值。

Tom*_*ert 5

updateOne不返回文档/文档字段。

您想要做的是使用findOneAndUpdate。现在这仍然返回“旧”文档,因此您要指定returnOriginal: false

.findOneAndUpdate({_id: ObjectId('5ed7f23789bcd51e9c6a82e0')}, {$inc: {nextTicket: 1}}, {returnOriginal: false})
Run Code Online (Sandbox Code Playgroud)