MongoDB updateMany更新多条记录

MongoDB updateMany更新多条记录

MongoDB 中,我们如果我们需要更新多条记录,既可以使用 update 函数,还可以使用 updateMany 函数,官方推荐使用 updateMany 函数。

MongoDB更新多条记录详解

语法

db_name.collection_name.updateMany( <filter>, <update>, { upsert: <boolean>, writeConcern: <document>, collation: <document>, arrayFilters: [ <filterdocument1>, ... ], hint: <document|string> // Available starting in MongoDB 4.2.1 } )

参数

参数 描述
db_name 数据库名
collection_name 集合名
filter 必选项,是设置更新的文档的条件
update 为更新操作符
upsert 为布尔型可选项,表示如果不存在 update 的记录,是否插入这个新的文档。true 为插入;默认为 false,不插入
writeConcem 表示出错级别
collation 指定语言

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

81_mongodb updateMany更新多条记录.png

现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:

use haicoder

现在,我们使用 insertMany 插入多条记录,具体命令如下:

db.haicoder.insertMany([{"name":"haicoder", "url":"www.haicoder.net"}, {"name":"HaiCoder", "url":"www.haicoder.net"}, {"name":"golang", "url":"https://haicoder.net/golang/golang-tutorial.html"}])

执行完毕后,此时,如下图所示:

82_mongodb updateMany更新多条记录.png

我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 查询当前的所有记录,具体命令如下:

db.haicoder.find({}, {_id:0})

执行完毕后,此时,如下图所示:

83_mongodb updateMany更新多条记录.png

现在,我们使用 updateMany 更新符合条件的多条记录,具体命令如下:

db.haicoder.updateMany({"url" : "www.haicoder.net"}, {$set:{"url":"haicoder.net"}})

执行完毕后,我们再次使用 find 查询记录,执行完毕后,如下图所示:

84_mongodb updateMany更新多条记录.png

我们看到,此时,更新了所有符合条件的记录。

MongoDB updateMany更新多条记录总结

在 MongoDB 中,我们如果我们需要更新多条记录,既可以使用 update 函数,还可以使用 updateMany 函数,官方推荐使用 updateMany 函数。