MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让咱们详细来看下两个函数的应用及其区别。
update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
咱们在集合 col 中插入如下数据:
>db.col.insert({
title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql database',
by: 'liulianjiangcsdn教程',
url: 'http://blog.csdn.net/qq441540598',
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 database",
"by" : "liulianjiangcsdn教程",
"url" : "http://blog.csdn.net/qq441540598",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
>
可以看到标题(title)由原来的 “MongoDB 教程” 更新为了 “MongoDB”。
以上语句只会修改第一条发现的文档,如果大神要修改多条相同的文档,则需要设置 multi 参数为 true。
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。语法格式如下:
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
参数说明:
以下实例中咱们替换了 _id 为 56064f89ade2f21f36b03136 的文档数据:
>db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql database",
"by" : "Runoob",
"url" : "http://blog.csdn.net/qq441540598",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
替换成功后,咱们可以通过 find() 命令来查看替换后的数据
>db.col.find().pretty()
{
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql database",
"by" : "Runoob",
"url" : "http://blog.csdn.net/qq441540598",
"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 \} \} , \{ $inc : \{ "count" : 1\} \},false,true );
只更新第一条记录:
db.col.update( \{ "count" : \{ $gt : 10 \} \} , \{ $inc : \{ "count" : 1\} \},false,false );
第1章 MongoDB 教程 | 第2章 NoSQL 简介教程 |
---|---|
第3章 MongoDB 简介教程 | 第4章 Windows MongoDB教程 |
第5章 Linux MongoDB教程 | 第6章 OSX MongoDB教程 |
第7章 MongoDB 概念解析教程 | 第8章 MongoDB 连接教程 |
第9章 MongoDB 创建数据库教程 | 第10章 MongoDB 删除数据库教程 |
第11章 MongoDB 创建集合教程 | 第12章 MongoDB 删除集合教程 |
第13章 MongoDB 插入文档教程 | 第14章 第14章 MongoDB 更新文档教程教程 |
第15章 MongoDB 删除文档教程 | 第16章 MongoDB 查询文档教程 |
第17章 MongoDB 条件操作符教程 | 第18章 MongoDB $type 操作符教程 |
第19章 MongoDB Limit与Skip方法教程 | 第20章 MongoDB 排序教程 |
第21章 MongoDB 索引教程 | 第22章 MongoDB 聚合教程 |
第23章 MongoDB 复制(副本集)教程 | 第24章 MongoDB 分片教程 |
第25章 MongoDB 备份与恢复教程 | 第26章 MongoDB 监控教程 |
第27章 MongoDB Java教程 | 第28章 MongoDB PHP 扩展教程 |
第29章 MongoDB PHP教程 | 第30章 MongoDB PHP7教程 |
第31章 Node.js MongoDB教程 | 第32章 MongoDB 关系教程 |
第33章 MongoDB 数据库引用教程 | 第34章 MongoDB 覆盖索引查询教程 |
第35章 MongoDB 查询分析教程 | 第36章 MongoDB 原子操作教程 |
第37章 MongoDB 高级索引教程 | 第38章 MongoDB 索引限制教程 |
第39章 MongoDB ObjectId教程 | 第40章 MongoDB Map Reduce教程 |
第41章 MongoDB 全文检索教程 | 第42章 MongoDB 正则表达式教程 |
第43章 MongoDB 管理工具教程 | 第44章 MongoDB GridFS教程 |
第45章 MongoDB 固定集合教程 | 第46章 MongoDB 自动增长教程 |
本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598
- 温柔要有的,但不是妥协,我们要在安静中不慌不忙的坚强。
- 不要以为你放不下的人同样会放不下你,鱼没有水会死,水没有鱼却会更清澈。
- 同窗末年一梦中,烂漫随风皆成空。他日再见谁为伴,为梦执笔笑苍穹。
- 信用就像一面镜子,只要有了裂缝就不能像原来那样连成一片。
- 睁开明亮的双眼,除去睡意的干扰,舒展标致的笑容,拥抱快活的一天。早安,朋友,愿你今天好心情,生活工作都舒心。