一、单个字段的修改
1.使用update方法:
方式1:db.表名.update({},{$rename:{"原字段":"新字段"}},false,true); 示例如下:
db.students.update({},{$rename:{"name":"studentName"}},false,true);
参数提示:
(1)第一个{}是过滤条件,为了过滤出待更新的文档。
(2)第一个false表示:可选,这个参数的意思是,如果根据过滤条件找不到记录时,true为插入新的记录,默认是false,不插入。
(3)第二个true表示:可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新
2.使用updateMany方法:
方式2:db.表名.updateMany({},{$rename:{"原字段":"新字段"}}); 示例如下:
db.students.updateMany({},{$rename:{"name":"studentName"}});
3.另外一种update方法的使用方式:
方式3:db.getCollection("表名").update({},{$rename:{"原字段":"新字段"}},{multi:true}); 示例如下:
db.getCollection("students").update({},{$rename:{"name":"studentName"}},{multi:true});
参数提示:{multi:true} 表示对该集合的所有数据生效,因为mongodb没有表结构这个概念,一个集合内的数据之间结构相互独立,不统一。
二、多个字段的修改
1.使用update方法:
方式1:db.表名.update({},{$rename:{"原字段1":"新字段1","原字段2":"新字段2"}},false,true); 示例如下:
db.students.update({},{$rename:{"name":"studentName", "age":"studentAge"}},false,true);
2.使用updateMany方法:
方式2:db.表名.updateMany({},{$rename:{"原字段1":"新字段1","原字段2":"新字段2"}}); 示例如下:
db.students.updateMany({},{$rename:{"name":"studentName", "age":"studentAge"}});
三、内嵌字段的修改
db.表名.update({},{$rename:{"外部字段.原字段":"外部字段.新字段"}},false,true); 数据如下:
{
"_id": 1,
"alias": [ "LiMing", "Ming" ],
"contact": { "qq" : "123456", "mobile" : "123-567-8899" }
}
如上数据所示,如果现在想修改contact字段下的mobile字段,调用$rename操作符使用点号“.”引用字段,如果重命名的字段是同一个内嵌文档中的字段也使用点号“.”引用。示例如下:
db.students.update({}, {$rename:{"contact.mobile": "contact.phone" }},false,true);
注:推荐使用这种方式哦:
db.getCollection("students").update({},{$rename:{"name":"studentName"}},{multi:true});
总结:以上就是mongoDB更新的相关内容啦
╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯