整理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文档(一):增

最后的点

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

相关推荐
鸢尾掠地平42 分钟前
MySQL之DML(含例子)
数据库·mysql
香蕉大香蕉(06敬畏市场)1 小时前
MySQL 单点详解(06)
java·数据库·mysql·博客·实习
CodeHackerBhx1 小时前
MySQL 迁达梦踩坑实录:FIND_IN_SET、timestamp(6) 和一整批要改的函数
数据库·mysql·达梦·信创·数据库迁移
n 55!w !1081 小时前
MySQL笔记整理2
数据库·笔记·mysql
李纲明2 小时前
WordPress 提示「建立数据库连接时出错」:先核 wp-config 与数据库服务,再查表损坏与磁盘配额
数据库·wordpress·devdiy
freejackman2 小时前
【架构篇】双遍历 + 多栈协同:手撸 SQL 血缘引擎的架构思考
java·大数据·数据库·hive·sql·架构·spark
杨云龙UP2 小时前
TDengine 社区版磁盘空间不足故障处理 SOP:历史日志清理、日志保留策略及数据保留 200 天
数据库·时序数据库·tdengine·tsdb·历史日志清理·trim database·logkeepdays
betazhou2 小时前
MySQL Oracle官方备份工具
数据库·mysql·oracle
一万年太久。2 小时前
mysql主从复制
数据库·mysql
车载中间件通信3 小时前
[TC8测试]TCP_FLAGS_PROCESSING_06
数据库·网络协议·tcp/ip·中间件·tc8