【发布时间】:2020-08-11 12:19:39
【问题描述】:
基本上我需要在文档中增加一个计数器并获取新值,但这必须以原子方式工作。
当前我正在使用的命令:
.updateOne({_id: ObjectId('5ed7f23789bcd51e9c6a82e0')}, {$inc: {nextTicket: 1}})
但我找不到如何立即获得新的增量值。
【问题讨论】:
标签: javascript mongodb mongoose concurrency atomic
基本上我需要在文档中增加一个计数器并获取新值,但这必须以原子方式工作。
当前我正在使用的命令:
.updateOne({_id: ObjectId('5ed7f23789bcd51e9c6a82e0')}, {$inc: {nextTicket: 1}})
但我找不到如何立即获得新的增量值。
【问题讨论】:
标签: javascript mongodb mongoose concurrency atomic
updateOne 不返回文档/文档字段。
你想要做的是使用findOneAndUpdate。现在这仍然返回“旧”文档,因此您要指定 returnOriginal: false
.findOneAndUpdate({_id: ObjectId('5ed7f23789bcd51e9c6a82e0')}, {$inc: {nextTicket: 1}}, {returnOriginal: false})
【讨论】:
findOneAndUpdate 是原子的吗?