MongoDB修改、删除文档的域属性实例

来源:互联网 发布:linux 小数计算 编辑:程序博客网 时间:2024/06/05 02:01

MongoDB修改、删除文档的域属性实例

在网站的开发中,可能最初的设计不合理,或者后期业务的变更,会造成文档结构会有些没用的属性,需要去删除或修改,由于MongoDB 是无 Schema 的,不像关系数据库那样列属性定义在表而非记录中,MongoDB 的集合中的每个文档可以拥有各自不同的域属性。MongoDB 中使用 db.collections.update 修改集合中若干文档的域属性,使用 $set 增加域,$unset 删除域。

删除集合中所有文档的一个域

[sql] view plaincopy
  1. db.posts.update({}, { $unset: { deleted_at: 1 } }, { multi: true })  


1.第一个参数表示选中某些文档,这里为 {} 表示选中当前 posts 集合中的所有文档

2.第二个参数为具体的更新操作,$unset 表示删除域

3.第三个参数为额外选项,{ multi: true } 表示更新所有满足要求的文档,默认只会更新第一个

也可以同时删除多个域

[sql] view plaincopy
  1. db.categories.update({}, { $unset: { deleted_at: 1, desc: 1 } }, { multi: true })  


也以同时删除和新增域

[sql] view plaincopy
  1. db.tags.update(  
  2.   
  3.     {},  
  4.   
  5.     { $unset: { deleted_at: 1 }, $set: { slug: 1, description: 1 } },  
  6.   
  7.     { multi: true }  
  8.   
  9. )  

0 0
原创粉丝点击