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

最后的点

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

相关推荐
ROCKY_8171 小时前
Mysql复习(二)
数据库·mysql·oracle
问道飞鱼3 小时前
【知识科普】认识正则表达式
数据库·mysql·正则表达式
HaiFan.3 小时前
SpringBoot 事务
java·数据库·spring boot·sql·mysql
水根LP493 小时前
linux系统上SQLPLUS的重“大”发现
数据库·oracle
途途途途4 小时前
精选9个自动化任务的Python脚本精选
数据库·python·自动化
04Koi.5 小时前
Redis--常用数据结构和编码方式
数据库·redis·缓存
silver98865 小时前
mongodb和Cassandra
数据库
PersistJiao5 小时前
3.基于 Temporal 的 Couchbase 动态 SQL 执行场景
数据库·sql
上山的月5 小时前
MySQL -函数和约束
数据库·mysql
zhcf5 小时前
【MySQL】十三,关于MySQL的全文索引
数据库·mysql