一 简介
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。
二 update() 方法
1、update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的部分
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
2、实例
我们在集合 col 中插入如下数据:
> db.col.insert(document)
WriteResult({ "nInserted" : 1 })
> db.col.insert({
... title: 'MongoDB 教程',
... description: 'MongoDB 是一个 Nosql 数据库',
... by: '菜鸟教程',
... url: 'http://www.runoob.com',
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
接着通过 update() 方法来更新标题(title):
> db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.col.find().pretty()
{
"_id" : ObjectId("593b6160bcd6757fd2d302fd"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
{
"_id" : ObjectId("593b61fdbcd6757fd2d302fe"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
{
"_id" : ObjectId("593b6555bcd6757fd2d302ff"),
"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})
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
> db.col.find().pretty() })
{
"_id" : ObjectId("593b6160bcd6757fd2d302fd"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
{
"_id" : ObjectId("593b61fdbcd6757fd2d302fe"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
{
"_id" : ObjectId("593b6555bcd6757fd2d302ff"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
三 save() 方法
1、语法
save() 方法通过传入的文档来替换已有文档。语法格式如下:
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
参数说明:
document : 文档数据。
writeConcern :可选,抛出异常的级别。
2、实例
以下实例中我们替换了 _id 为 593b6555bcd6757fd2d302ff 的文档数据:
> db.col.save({
... "_id" : ObjectId("593b6555bcd6757fd2d302ff"),
... "title" : "MongoDB是一个很好的课程",
... "description" : "MongoDB 是一个 Nosql 数据库",
... "by" : "Runoob",
... "url" : "http://www.runoob.com",
... "tags" : [
... "mongodb",
... "NoSQL"
... ],
... "likes" : 130
... })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
替换成功后,我们可以通过 find() 命令来查看替换后的数据
> db.col.find().pretty()
{
"_id" : ObjectId("593b6160bcd6757fd2d302fd"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
{
"_id" : ObjectId("593b61fdbcd6757fd2d302fe"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
{
"_id" : ObjectId("593b6555bcd6757fd2d302ff"),
"title" : "MongoDB是一个很好的课程",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 130
}
相关推荐
2.了解NoSQL和文档数据库 3.要求 4.其他帮助资源 4.1。支持 4.1.1。社区论坛 4.1.2。专业支持 4.2。发展之后 5.新&值得注意的 5.1。Spring Data MongoDB 2.1中的新特性 5.2。Spring Data MongoDB 2.0中的新特性 5.3...
MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性、高性能和易用性而备受开发者青睐。作为NoSQL数据库的一种,它存储数据的方式不同于传统的表结构,而是采用键值对、文档、集合的形式。MongoDB的官方中文...
### Spring Data MongoDB中文文档知识点概览 #### 一、Spring Data MongoDB概述 - **Spring Data MongoDB** 是 **Spring Data** 家族的一员,它提供了一种简单的方式来与 MongoDB 数据库进行交互。通过 Spring Data...
- **数据映射和类型转换**:如何处理对象与MongoDB文档之间的映射和转换。 - **映射配置**:提供了配置映射规则的方法。 #### 15. 跨存储支持 - **跨商店配置**:支持跨多个MongoDB实例的数据操作。 - **编写跨商店...
Spring Data MongoDB API。 Spring Data MongoDB 开发文档。
这个驱动程序提供了一组API,使得开发人员能够轻松地连接到MongoDB服务器、创建数据库、集合,并执行CRUD(创建、读取、更新、删除)操作。例如,使用`MongoClient`类可以建立到MongoDB服务器的连接,`MongoDatabase...
这是一个用于MongoDB操作的类,它封装了对MongoDB的基本CRUD(创建、读取、更新、删除)操作,并且提供了一个更加面向对象的接口,使得开发者可以通过更加自然的方式来操作MongoDB。 SpringData MongoDB支持查询...
MongoDB是一个高性能、开源、无模式的分布式文档型数据库,它以其灵活性和可扩展性受到青睐。而PHP作为服务器端脚本语言,因其易学易用性而广受欢迎,因此将PHP与MongoDB结合,可以构建高效的数据驱动应用。 本文档...
mongodb分片配置.docx Mongodb.chm mongodb安装以及基本操作.docx MongoDB使用手册.doc mongo分布式研究.docx 有这5个文档足够学习Mongodb使用了
5. 更新操作可以替换整个文档或指定字段。 6. 内置 MapReduce 功能,用于数据批量处理和聚合操作,Map 函数遍历记录,Reduce 函数处理结果。 7. GridFS 用于存储大量小文件。 8. 支持在服务器端执行 JavaScript 脚本...
使用 MongoDB 更新文档可以使用 update 命令。 3.6 MongoDB 查询文档 使用 MongoDB 查询文档可以使用 find 命令。 3.7 MongoDB 条件操作符 MongoDB 提供了多种条件操作符,例如 eq、ne、gt、lt、gte、lte 等。 ...
### MongoDB 3.2.4 说明文档知识点总结 #### 一、MongoDB简介 **1.1 文档型数据库** MongoDB 是一种基于分布式文件存储的开源文档型数据库系统,设计初衷是为了解决传统关系型数据库在处理大规模非结构化数据时...
对于数据库的安全性,MongoDB文档将介绍安全机制的原理和概念,并提供安全性教程来指导用户如何配置认证、授权以及加密等安全选项。安全性参考部分则详细列举了相关的安全命令和设置,是实际操作时的重要参考。 ...
1. 使用sudo apt-get update更新软件源,然后sudo apt-get install mongodb-server安装MongoDB。 2. 配置MongoDB服务,编辑/etc/mongod.conf文件,根据需求调整存储路径、端口等设置。 3. 启动MongoDB服务,使用命令...
MongoDB 是一个流行的开源文档型数据库系统,以其灵活性、高性能和可扩展性而备受开发者喜爱。这份"mongodb 学习文档"涵盖了多个方面的内容,包括MongoDB的基础概念、安装配置、数据模型、查询操作、聚合框架、索引...
MongoDB 3.6 中文文档
3. **CRUD操作**:MongoDB提供了创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据的基本操作。与SQL相比,它们具有不同的语法和方法,例如使用`insertOne()`、`find()`、`updateOne()`和`delete...
“MongoDBClientTest”可能是一个示例项目,展示了如何在实际应用中使用编译好的驱动程序,包括连接到MongoDB服务器,执行查询,插入和更新文档等操作。这有助于开发者了解如何在自己的项目中集成MongoDB C++驱动。 ...