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会越来越好