| 选项 | { upsert: true } |
|---|---|
| 仅插入时生效 | $setOnInsert |
| 返回 | upsertedId 标识新建文档 |
计数场景
计数场景
db.counters.updateOne(
{ name: "orderNo" },
{ $inc: { value: 1 }, $setOnInsert: { createdAt: new Date() } },
{ upsert: true }
)更新操作符在插入分支同样会被应用,新建文档是过滤条件与更新内容的合并结果。
updateOne/updateMany 传 {upsert:true}:无匹配文档时按“过滤条件 + 更新内容”新建;$setOnInsert 只在插入分支生效。
| 选项 | { upsert: true } |
|---|---|
| 仅插入时生效 | $setOnInsert |
| 返回 | upsertedId 标识新建文档 |
db.counters.updateOne(
{ name: "orderNo" },
{ $inc: { value: 1 }, $setOnInsert: { createdAt: new Date() } },
{ upsert: true }
)