MongoDB修改、删除文档的域属性实例
在网站的开发中,可能最初的设计不合理,或者后期业务的变更,会造成文档结构会有些没用的属性,需要去删除或修改,由于MongoDB 是无 Schema 的,不像关系数据库那样列属性定义在表而非记录中,MongoDB 的集合中的每个文档可以拥有各自不同的域属性。MongoDB 中使用 db.collections.update 修改集合中若干文档的域属性,使用 $set 增加域,$unset 删除域。
删除集合中所有文档的一个域
db.posts.update({}, { $unset: { deleted_at: 1 } }, { multi: true })
1.第一个参数表示选中某些文档,这里为 {} 表示选中当前 posts 集合中的所有文档
2.第二个参数为具体的更新操作,$unset 表示删除域
3.第三个参数为额外选项,{ multi: true } 表示更新所有满足要求的文档,默认只会更新第一个
也可以同时删除多个域
db.categories.update({}, { $unset: { deleted_at: 1, desc: 1 } }, { multi: true })
也以同时删除和新增域
db.tags.update(
{},
{ $unset: { deleted_at: 1 }, $set: { slug: 1, description: 1 } },
{ multi: true }
)
本文参考: http://www.lai18.com/content/348300.html ,题外话:有很大一批人并不看好MongoDB,甚至罗列了MongoDB很多的问题,其实MongoDB只是一个工具而已,我们需要的是它能帮我们解决需求,相信MongoDB会越来越好
延伸阅读
2MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)
8MongoDB入门教程之细说MongoDB数据库的增删查改操作
10MongoDB入门教程之Windows下的MongoDB数据库安装图解
11MongoDB查询字段没有创建索引导致的连接超时异常解案例分享
30MongoDB教程之聚合(count、distinct和group)
39MongoDB系列教程(六):java操作mongodb实例
40MongoDB系列教程(七):MongoDb数据结构详解
41MongoDB系列教程(五):mongo语法和mysql语法对比学习
45MongoDB系列教程(三):Windows中下载和安装MongoDB