整理mongodb文档:批量操作

个人博客

整理mongodb文档:批量操作

个人公众号,求关注,文章如有不明,请指出。

文章概叙

本文讲的是关于bulkwrite的用法,依旧是在shell下使用。

关于批量操作

Performs multiple write operations with controls for order of

execution.

官网上这句话关于批量操作的介绍,简单明了。翻译过来就是:使用控制执行顺序的控件执行多个写入操作。

bulkWrite

批量操作的api只有一个,就是使用bulkWrite。

bulkwrite并非一次只能操作一种类型,而是可以同时操作多种类型的数据。比如在一次sql中,既可以批量修改,又可以批量增加。

举个例子,使用bulkwrite操作写入两条数据

javascript 复制代码
db.test.bulkWrite([
    {
        insertMany: [{
            string: "a"
        }, {
            string: "b"
        }]
    }
])

细心的朋友看到我这儿是insertMany,但是官网中并没有insertMany的实例,因此我个人推荐使用updateMany,然后将upsert更改为true。

如果同时操作多个,比如前面所提及的更新与插入在同一个sql中操作,则应使用如下语法。

javascript 复制代码
db.test.bulkWrite([
    {
        insertOne: {
            string: "a"
        }
    },
    {
        updateOne: {
            "filter": {
                "string": 'b'
            },
            "update": {
                "$set": {
                    string: 'c'
                }
            },
            upsert: true
        }
    }
])

上面的sql的意思是:增加一条a的记录,将db中为b的记录更改为c,如果没有则增加一条©的记录。

效果如下:

其中,可以看到我们的使用upsert的那条记录。并不归属于insertedcount中,而是归属于uosertedcount中,所以需要注意下这个。

bulkwrite支持的方法如下,每个具体的方法之前的博客都有讲解过,这儿就不再具体描述了 。

无序插入

之前的博客讲解过关于无序插入的,这儿不再讲解了。详情请看
整理mongodb文档(一):增

最后的点

关于分片集群的批量操作,后续关于集群博客的时候再讲解。​

相关推荐
云计算磊哥@4 分钟前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
小二·19 分钟前
Redis 内存溢出(OOM)排查与恢复实战
数据库·redis·bootstrap
pqk6V6Vep20 分钟前
Redis 分布式锁进阶第一篇讲解
数据库·redis·分布式
giaz14n9X37 分钟前
Redis 分布式锁进阶第六十一篇
数据库·redis·分布式
是一个Bug42 分钟前
MongoDB:像搭积木一样存数据
数据库·mongodb
ULIi096kr1 小时前
MySQL解决Too many connections报错:连接数爆满排查、优化与永久解决方案
数据库·mysql·adb
SL-staff2 小时前
(一)数据源配置 —— JVS-Rules规则引擎 V2.5 操作说明介绍
数据库·jar·规则引擎·数据源·jvs-rules·api 接口·jvs低代码
摇滚侠2 小时前
Spring 零基础入门到进阶 基于 XML 管理 Bean 14-28
xml·数据库·spring
Metaphor6923 小时前
使用 Python 给 PDF 设置背景色或背景图
数据库·python·pdf
Gauss松鼠会3 小时前
【GaussDB】GaussDB重要通信参数汇总
服务器·网络·数据库·sql·性能优化·gaussdb·经验总结