IT俱乐部 Python mongodb upsert操作是什么?如何用一条命令实现更新或插入?

mongodb upsert操作是什么?如何用一条命令实现更新或插入?

upsert

是一种特殊的更新,如果没有找到符合条件的更新条件的文档,就会以这个条件和更新文档为基础创建一个新的文档;

如果找到了匹配的文档,就正常更新,upsert非常方便,不必预置集合,同一套代码既能用于创建文档又可以更新文档

其语法和更新的语法一样,只是在更新的基础上多加第三个参数–>true:如下:

语法:

db.stu.update({“_id”: 3}, {用于更新的文档内容}, “这里就是要添加的第三个参数,是固定的!”)

例:

db.stu.update({"_id": 3}, {"$set": {"name": "wang"}}, true)

演示效果

如下:

所以这个方法适用于:

以更新条件为基础,如果查到对应数据,则将对应数据更新,如果查不到对应数据,那么则以更新条件新增一条数据!

优点

设想,如果我们对某种数据操作都是先查数据库,确定是否有对应文档,再决定更新还是插入,那么在多个进程同时操作同一段代码,或者多个进程/线程操作同一个条件时,就会遇到同时对给定条件插入多个文档这样的竞态条件, 

但是,使用upsert,既可以避免这种竞态问题,又可以减少代码量,并且这样会更高效,是原子性的

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。

本文收集自网络,不代表IT俱乐部立场,转载请注明出处。https://www.2it.club/code/python/18747.html
上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 1120393934@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部