趣文网 > 作文大全

MongoDB 快速入门实战教程最新版

2020-12-06 00:00:01
相关推荐

在上一篇 《MongoDB 实战教程:数据库与集合的 CRUD 操作篇》 中,我们学习了MongoDB 与 NoSQL 的关系、 MongoDB 的安装、数据类型、MongoShell、创建数据库、显式创建集合和隐式创建集合,还学习了如何更改集合名称以及删除数据库和集合的方法,并对每种操作都进行了实例演示。

在本篇 chat 中我们将学习流式聚合操作,并深入了解语句的执行效率。然后深入学习能够提高数据服务可用性的复制集。接着了解 MongoDB 的水平扩展能力,学习 MongoDB 数据的备份与还原方法,并为数据服务开启访问控制。

基础篇 一 文档的 CRUD 操作

CRUD 操作指的是对文档进行 `create`,`read`,`update` and `delete` 操作,即增删改查。文档 CRUD 操作的内容将分为 `Create Operations`, `Read Operations`, `Update Operations`, `Delete Operations` 和 `Cursor` 等 5 个部分进行介绍。

Create Operations

创建操作或者插入操作会向集合添加新的文档。之前有提到过,如果插入时集合不存在,插入操作会创建对应的集合。MongoDB 提供了 3 个插入文档的方法:

`db.collection.insert()``db.collection.insertOne()``db.collection.insertMany()`

插入单个文档

其中,`db.collection.insertOne()` 用于向集合插入单个文档。而 `db.collection.insertMany()` 和 `db.collection.insert()` 可以向集合插入多个文档。`db.collection.insertOne()` 示例如下:

自动命令执行后会返回一个结果文档,文档输出如下:

这说明文档插入成功。其中,`acknowledged` 代表本次操作的操作状态,状态值包括 `true` 和 `false`。`insertedId` 即该文档的 `_id`。

提示:示例中的省略号是 MongoShell 的换行标识符。换行标识符对命令输入和执行并没有影响,所以本文也不会注重风格的统一,即示例中有时会带有换行符,有时则不带有换行符。

插入多个文档

`db.collection.insertMany()` 示例如下:

由于本次插入了 2 个文档,所以返回的结果文档会显示两个 `_id`。返回文档内容如下:

`db.collection.insert()` 示例如下:

示例演示的是单个文档的插入,实际上插入多个文档也是没问题的。`db.collection.insert()` 插入单个文档时返回的是一个带有操作状态的 `WriteResult` 对象:`WriteResult({ "nInserted" : 1 })` 。其中,`nInserted` 表明了插入文档的总数。但如果插入操作遇到错误,那么 `WriteResult` 对象将包含错误提示信息。

`db.collection.insert()` 插入多个文档的示例如下:

可以看到,`db.collection.insert()` 插入多个文档和插入单个文档得到的返回结果是不同的。

Read Operations

MongoDB 提供了 `db.collection.find()` 方法从集合中读取文档。在开始练习之前,需要准备用于练习的基础数据。在 MongoShell 中执行以下文档插入操作:

查询文档

将一个空位当作为查询过滤器参数传递给 `db.collection.find()` 方法就可以得到所有文档,对应示例如下:

或者什么都不传,直接使用 `find()`,对应示例如下:

这等效于 SQL 中的 `SELECT * FROM inven`。

更多关于元素查询操作符的知识可查阅官方文档 Element Query Operators。

限于篇幅

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

立德作文 以微信为话题的作文 小学生的作文题目 我是中学生感觉真棒作文 参赛作文 真爱的作文 北京故宫作文400字 德里克罗斯作文 付出才会有收获作文 我的小确幸作文500字 广一模作文 赛诗会作文 写假期的英语作文 告诉你一件新鲜事作文500字 中秋节习俗作文 安全作文450字 快乐的滋味作文600字 关于家乡节日的作文 一处景物作文300字 钢琴作文800字 描写小鸟的作文 童年趣事800字作文 2018江苏高考语文作文 2019年全国卷一语文作文 打屁股作文后妈 我懂得了一个道理作文 成长的脚印作文600字 授人以渔的作文议论文 打屁股作文3000字 如皋水绘园作文