MongoDB 更新文档2

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB 更新文档2

实例

我们在集合 col 中插入如下数据:


>db.col.insert({

   title: 'MongoDB 教程',

   description: 'MongoDB 是一个 Nosql 数据库',

   by: '菜鸟教程',

   url: 'http://www.runoob.com',

   tags: ['mongodb', 'database', 'NoSQL'],

   likes: 100

})

接着我们通过 update() 方法来更新标题(title):


>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息

> db.col.find().pretty()

{

       "_id" : ObjectId("56064f89ade2f21f36b03136"),

       "title" : "MongoDB",

       "description" : "MongoDB 是一个 Nosql 数据库",

       "by" : "菜鸟教程",

       "url" : "http://www.runoob.com",

       "tags" : [

               "mongodb",

               "database",

               "NoSQL"

       ],

       "likes" : 100

}

>


可以看到标题(title)由原来的 "MongoDB 教程" 更新为了 "MongoDB"。


以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。


>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

save() 方法

save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。语法格式如下:


db.collection.save(

  ,

  {

    writeConcern:

  }

)

参数说明:


document : 文档数据。

writeConcern :可选,抛出异常的级别。

实例

以下实例中我们替换了 _id 为 56064f89ade2f21f36b03136 的文档数据:


>db.col.save({

   "_id" : ObjectId("56064f89ade2f21f36b03136"),

   "title" : "MongoDB",

   "description" : "MongoDB 是一个 Nosql 数据库",

   "by" : "Runoob",

   "url" : "http://www.runoob.com",

   "tags" : [

           "mongodb",

           "NoSQL"

   ],

   "likes" : 110

})

替换成功后,我们可以通过 find() 命令来查看替换后的数据


>db.col.find().pretty()

{

       "_id" : ObjectId("56064f89ade2f21f36b03136"),

       "title" : "MongoDB",

       "description" : "MongoDB 是一个 Nosql 数据库",

       "by" : "Runoob",

       "url" : "http://www.runoob.com",

       "tags" : [

               "mongodb",

               "NoSQL"

       ],

       "likes" : 110

}

>

更多实例

只更新第一条记录:


db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );


全部更新:


db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );


只添加第一条:


db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );


全部添加进去:


db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );


全部更新:


db.col.update( { "count" : { gt : 15 } } , {gt : 15 } } , {gt : 15 } } , { inc : { "count" : 1} },false,true );


只更新第一条记录:


db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
NoSQL MongoDB 数据库
MongoDB 更新文档
10月更文挑战第14天
48 2
|
2月前
|
存储 NoSQL MongoDB
数据的存储--MongoDB文档存储(二)
数据的存储--MongoDB文档存储(二)
69 2
|
2月前
|
SQL NoSQL MongoDB
MongoDB 查询文档
10月更文挑战第15天
26 1
|
2月前
|
存储 NoSQL 关系型数据库
数据的存储--MongoDB文档存储(一)
数据的存储--MongoDB文档存储(一)
90 3
|
2月前
|
NoSQL MongoDB
MongoDB 删除文档
10月更文挑战第15天
50 0
|
2月前
|
存储 JSON NoSQL
MongoDB 插入文档
10月更文挑战第14天
34 0
|
3月前
|
SQL NoSQL Shell
03 MongoDB文档的各种增加、更新、删除操作总结
文章总结了MongoDB中文档的增删改操作,包括插入文档、更新现有文档以及删除文档的具体方法和示例。
127 0
|
7月前
|
存储 NoSQL 数据管理
【MongoDB 专栏】MongoDB 文档模型详解
【5月更文挑战第10天】MongoDB 是一种流行的 NoSQL 数据库,以其灵活的文档数据模型著称。文章介绍了文档的基本概念、结构及操作,包括插入、查询、更新和删除。文档特点是灵活且可扩展,适合存储不同结构的数据。优势在于简化数据建模、提升开发效率并适应动态数据。应用场景包括用户信息、日志记录和电商数据管理。但需注意数据一致性和文档大小对性能的影响。理解文档模型有助于高效利用 MongoDB。
95 1
【MongoDB 专栏】MongoDB 文档模型详解
|
5月前
|
存储 NoSQL MongoDB
MongoDB拆分大文档、嵌入文档
【7月更文挑战第6天】
52 0