一、单个字段的修改

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});

╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐