上一篇我们介绍了如何更新一条文档,本篇我们介绍一下,如果更新多条文档,我们来回顾一下更新多条文档的语法:
db.collection.updateMany(filter, update, options)
上一篇我们对语法中的参数及参数的语法进行了详细的介绍:
collection指的是集合
filter 指的是文档的过滤条件
update 指的是更新的内容
options是一些其他的选项。
本篇不再对上面的参数以及参数的语法进行介绍,如果有需要则参考:
MongoDB 更新文档(更新一条文档)https://blog.csdn.net/m1729339749/article/details/129983304我们直接通过示例来说明如何更新多条文档:
例子:
我们先查询一下数据:
{ "_id" : "1001", "name" : "张三2", "fruits" : [ "apple", "orange" ], "updateTime" : ISODate("2023-04-06T02:36:00.703Z") }
{ "_id" : "1002", "name" : "李四", "fruits" : [ "banana", "apple" ] }
{ "_id" : "1003", "name" : "王五", "fruits" : [ "banana", "apple", "orange" ] }
{ "_id" : "1004", "score" : 100, "name" : "田七" }
{ "_id" : "1005", "name" : "田七", "score" : 100 }
我们更新不存在fruits字段或者fruits字段值为空的数据,把fruits的值设置成[ "banana" ]:
db.test.updateMany(
{
$or: [
{ "fruits": { $exists: false } },
{ "fruits": { $size: 0 } }
]
},
{
$set: { "fruits": [ "banana" ] }
}
);
更新之后,查询数据如下:
{ "_id" : "1001", "name" : "张三2", "fruits" : [ "apple", "orange" ], "updateTime" : ISODate("2023-04-06T02:36:00.703Z") }
{ "_id" : "1002", "name" : "李四", "fruits" : [ "banana", "apple" ] }
{ "_id" : "1003", "name" : "王五", "fruits" : [ "banana", "apple", "orange" ] }
{ "_id" : "1004", "score" : 100, "name" : "田七", "fruits" : [ "banana" ] }
{ "_id" : "1005", "name" : "田七", "score" : 100, "fruits" : [ "banana" ] }
我们可以看到_id 为1004, 1005的两条数据已经更新了fruits字段。