最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
mongodbupsert操作是什么?如何用一条命令完成更新或插入?
时间:2026-07-23 16:43:15 编辑:袖梨 来源:一聚教程网
upsert
是一种特殊的更新,如果没有找到符合条件的更新条件的文档,就会以这个条件和更新文档为基础创建一个新的文档;
如果找到了匹配的文档,就正常更新,upsert非常方便,不必预置集合,同一套代码既能用于创建文档又可以更新文档
其语法和更新的语法一样,只是在更新的基础上多加第三个参数-->true:如下:
语法:
db.stu.update({"_id": 3}, {用于更新的文档内容}, “这里就是要添加的第三个参数,是固定的!”)
例:
db.stu.update({"_id": 3}, {"$set": {"name": "wang"}}, true)演示效果
如下:

所以这个方法适用于:
以更新条件为基础,如果查到对应数据,则将对应数据更新,如果查不到对应数据,那么则以更新条件新增一条数据!
优点
设想,如果我们对某种数据操作都是先查数据库,确定是否有对应文档,再决定更新还是插入,那么在多个进程同时操作同一段代码,或者多个进程/线程操作同一个条件时,就会遇到同时对给定条件插入多个文档这样的竞态条件,
但是,使用upsert,既可以避免这种竞态问题,又可以减少代码量,并且这样会更高效,是原子性的
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
您可能感兴趣的文章:- mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)
- Django项目中怎么配置MongoDB?新手必看教程
- MongoDB数据库中查询语句速查手册
- Django怎么连接MongoDB数据库?详细配置教程来了
- 使用Docker部署生产级MongoDB的流程步骤
相关文章
- 代码暗示:特斯拉 App 已开始为 Optimus 人形机器人上线做准备 07-23
- 红色沙漠泥浆行者卢特米勒怎么打 07-23
- 消息称 Claude 语音模式将支持调用 Opus 与 Sonnet AI 模型 07-23
- 2026 开源 AI Agent 工具选型指南:搜索增强工具可选作配套选型选项 07-23
- 宠物鼠时尚理发 07-23
- 手持 16mm 摄像机偶像 Vlog 07-23