MongoDB update更新多条记录

MongoDB update更新多条记录

MongoDB 中,通过 update 更新记录时,默认只更新一条符合条件的记录,如果我们需要更新所有符合条件的记录,我们需要将 multi 参数设置为 true。

MongoDB update更新多条记录详解

语法

db_name.collection_name.update( <query>, <update>, { multi:true } )

参数

参数 描述
db_name 数据库名
collection_name 集合名
query 必选项,是设置更新的文档的条件
update 为更新操作符

说明

使用 update 更新记录时,将 multi 设置为 true,表明需要更新所有符合条件的记录。

MongoDB update更新所有符合条件记录

语法

db_name.collection_name.update( <query>, <update>, { false, true } )

参数

参数 描述
db_name 数据库名
collection_name 集合名
query 必选项,是设置更新的文档的条件
update 为更新操作符

说明

我们还可以简写的形式,即,直接写 {false, true} 这样的形式来更新。

案例

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

mongo

如下图所示:

51_mongodb更新所有符合条件的记录.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"}])

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

52_mongodb更新所有符合条件的记录.png

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

db.haicoder.find()

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

53_mongodb更新所有符合条件的记录.png

现在,我们使用 update 修改所有 name 字段,具体命令如下:

db.haicoder.update({}, {"$set":{"name" : "HAICODER"}}, false, true)

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

54_mongodb更新所有符合条件的记录.png

我们看到,这次,更新了所有的记录的 name 字段,我们也可以显式指定 multi 字段,来达到更新所有的目的,具体命令如下:

db.haicoder.update({}, {"$set":{"name" : "haicoder"}}, {"multi":true})

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

55_mongodb更新所有符合条件的记录.png

我们看到,通过显式指定 multi 同样达到了修改所有记录的目的。

MongoDB update更新多条记录

在 MongoDB 中,通过 update 更新记录时,默认只更新一条符合条件的记录,如果我们需要更新所有符合条件的记录,我们需要将 multi 参数设置为 true。