db.collection.findOneAndUpdate()
原子更新并返回文档
语法
db.collection.findOneAndUpdate(<filter>, <update>, <options>)说明
原子地查找并更新一条文档。可返回更新前的旧文档或更新后的新文档(returnNewDocument: true)。常用于并发安全的操作如计数器、队列等。
参数
filter必填查询条件
update必填更新操作符
returnNewDocumenttrue 返回更新后的文档
upsert不存在时是否插入
sort匹配多条时按排序选择
示例
原子自增序列号
获取下一个订单号(并发安全)
db.counters.findOneAndUpdate({ _id: "orderId" }, { $inc: { seq: 1 } }, { returnNewDocument: true })返回更新后文档
更新并返回新文档
db.users.findOneAndUpdate({ _id: userId }, { $set: { status: "verified" } }, { returnNewDocument: true })