整理mongodb文档:批量操作

个人博客

整理mongodb文档:批量操作

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

文章概叙

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

关于批量操作

Performs multiple write operations with controls for order of
execution.

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

bulkWrite

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

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

db.test.bulkWrite([
    {
        insertMany: [{
            string: "a"
        }, {
            string: "b"
        }]
    }
])

细心的朋友看到我这儿是insertMany,但是官网中并没有insertMany的实例,因此我个人推荐使用updateMany,然后将upsert更改为true。
如果同时操作多个,比如前面所提及的更新与插入在同一个sql中操作,则应使用如下语法。

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

上面的sql的意思是:增加一条a的记录,将db中为b的记录更改为c,如果没有则增加一条©的记录。
效果如下:
整理mongodb文档:批量操作_第1张图片
在这里插入图片描述

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

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

整理mongodb文档:批量操作_第2张图片

无序插入

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

最后的点

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

你可能感兴趣的:(mongodb,数据库)