MongoDB更新文档

7个月前 (04-27)
在 MongoDB 中,可以使用 update() 和 save() 方法来更新中的文档。其中 update() 方法可以更新现有文档中的值,而 save() 方法则可以使用传入文档来替换已有文档。

update() 方法

update() 方法用于更新现有文档中的值,其语法格式如下:

db.collection_name.update(
    <query>,
    <update>,
    {
        upsert: <boolean>,
        multi: <boolean>,
        writeConcern: <document>
    }

)

参数说明如下:
  • query:update 的查询条件,类似 SQL 中 update 语句内 where 后面的内容;

  • update:update 的对象和一些更新的操作符(如 $、$inc...)等,也可以理解为 SQL 中 update 语句内 set 后面的内容;

  • upsert:可选参数,默认值为 false,用来定义当要更新的记录不存在时,是否当作新记录插入到中,当值为 true 时表示插入,值为 false 时不插入;

  • multi:可选参数,默认值为 false,用来表示只更新找到的条记录,当值为 true 时,则把按条件查出来的多条记录全部更新;

  • writeConcern:可选参数,用来定义抛出异常的级别。


【示例】首先我们先向中插入以下数据:

> db.course.insert([

... {

... title: 'MongoDB教程',

... author: '编程帮',

... url: 'http://www.bianchen网站站点" rel="nofollow" />

> db.course.update({title:"MongoDB教程"},{$set:{url:"http://www.biancheng网站站点" rel="nofollow" />

db.course.update({title:"MongoDB教程"},{$set:{url:"http://www.biancheng网站站点" rel="nofollow" /> db.collection_name.save(
    <document>,
    {
        writeConcern: <document>
    }

)

参数说明如下:
  • document : 文档数据;

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


【示例】使用 save() 方法更新 _id 为“603209d8e492ab9be9450304”的文档中的数据。

> db.course.save(

... {

... "_id" : ObjectId("603209d8e492ab9be9450304"),

... "title" : "MongoDB教程",

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

... "author" : "编程帮",

... "url" : "http://www.biancheng网站站点" rel="nofollow" />

> db.course.find().pretty()

{

"_id" : ObjectId("603209d8e492ab9be9450304"),

"title" : "MongoDB教程",

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

"author" : "编程帮",

"url" : "http://www.biancheng网站站点" rel="nofollow" />