MongoDB权威指南(第2版)

MongoDB权威指南(第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

一部介绍MongoDB数据库开发的作品。

内容简介

与传统的关系型数据库不同,MongoDB是一种面向文档的数据库。这本书这一版共分为六部分,涵盖开发、管理以及部署的各个方面。第一部分展示MongoDB基础知识、核心概念。第二部分介绍使用MongoDB进行开发,包括索引的概念以及各种特殊索引和集合的用法等。第三部分讲述复制,包括副本集的相关概念、创建方法,与应用程序的交互等。第四部讨论分片,包括分片的配置,片键的选择,集群的管理。第五部分阐述创建索引、移动和压缩数据等管理任务,以及MongoDB的持久数据存储。最后一部分集中说明服务器管理。

本书适合数据库开发和管理人员阅读。

作者简介

作者克里斯蒂娜·霍多罗夫,谷歌软件工程师,曾有5年是MongoDB项目的核心成员。她领导了MongoDB的副本集开发,并编写了PHP和Perl驱动程序。

章节目录

版权信息

O'Reilly Media, Inc.介绍

业界评论

前言

本书的组织结构

本书排版规范

使用代码示例

Safari在线图书

联系我们

致谢

第一部分 MongoDB介绍

第1章 MongoDB简介

1.1 易于使用

1.2 易于扩展

1.3 丰富的功能

1.4 卓越的性能

1.5 小结

第2章 MongoDB基础知识

2.1 文档

2.2 集合

2.2.1 动态模式

2.2.2 命名

2.3 数据库

2.4 启动MongoDB

2.5 MongoDB shell简介

2.5.1 运行shell

2.5.2 MongoDB客户端

2.5.3 shell中的基本操作

2.6 数据类型

2.6.1 基本数据类型

2.6.2 日期

2.6.3 数组

2.6.4 内嵌文档

2.6.5 _id和ObjectId

2.7 使用MongoDB Shell

2.7.1 shell小贴士

2.7.2 使用shell执行脚本

2.7.3 创建.mongorc.js文件

2.7.4 定制shell提示

2.7.5 编辑复合变量

2.7.6 集合命名注意事项

第3章 创建、更新和删除文档

3.1 插入并保存文档

3.1.1 批量插入

3.1.2 插入校验

3.2 删除文档

删除速度

3.3 更新文档

3.3.1 文档替换

3.3.2 使用修改器

3.3.3 upsert

3.3.4 更新多个文档

3.3.5 返回被更新的文档

3.4 写入安全机制

第4章 查询

4.1 find简介

4.1.1 指定需要返回的键

4.1.2 限制

4.2 查询条件

4.2.1 查询条件

4.2.2 OR查询

4.2.3 $not

4.2.4 条件语义

4.3 特定类型的查询

4.3.1 null

4.3.2 正则表达式

4.3.3 查询数组

4.3.4 查询内嵌文档

4.4 $where查询

服务器端脚本

4.5 游标

4.5.1 limit、skip和sort

4.5.2 避免使用skip略过大量结果

4.5.3 高级查询选项

4.5.4 获取一致结果

4.5.5 游标生命周期

4.6 数据库命令

数据库命令工作原理

第二部分 设计应用

第5章 索引

5.1 索引简介

5.1.1 复合索引简介

5.1.2 使用复合索引

5.1.3 $操作符如何使用索引

5.1.4 索引对象和数组

5.1.5 索引基数

5.2 使用explain()和hint()

查询优化器

5.3 何时不应该使用索引

5.4 索引类型

5.4.1 唯一索引

5.4.2 稀疏索引

5.5 索引管理

5.5.1 标识索引

5.5.2 修改索引

第6章 特殊的索引和集合

6.1 固定集合

6.1.1 创建固定集合

6.1.2 自然排序

6.1.3 循环游标

6.1.4 没有_id索引的集合

6.2 TTL索引

6.3 全文本索引

6.3.1 搜索语法

6.3.2 优化全文本搜索

6.3.3 在其他语言中搜索

6.4 地理空间索引

6.4.1 地理空间查询的类型

6.4.2 复合地理空间索引

6.4.3 2D索引

6.5 使用GridFS存储文件

6.5.1 GridFS入门

6.5.2 在MongoDB驱动程序中使用GridFS

6.5.3 揭开GridFS的面纱

第7章 聚合

7.1 聚合框架

7.2 管道操作符

7.2.1 $match

7.2.2 $project

7.2.3 $group

7.2.4 $unwind

7.2.5 $sort

7.2.6 $limit

7.2.7 $skip

7.2.8 使用管道

7.3 MapReduce

7.3.1 示例1:找出集合中的所有键

7.3.2 示例2:网页分类

7.3.3 MongoDB和MapReduce

7.4 聚合命令

7.4.1 count

7.4.2 distinct

7.4.3 group

第8章 应用程序设计

8.1 范式化与反范式化

8.1.1 数据表示的例子

8.1.2 基数

8.1.3 好友、粉丝,以及其他的麻烦事项

8.2 优化数据操作

8.2.1 优化文档增长

8.2.2 删除旧数据

8.3 数据库和集合的设计

8.4 一致性管理

8.5 模式迁移

8.6 不适合使用MongoDB的场景

第三部分 复制

第9章 创建副本集

9.1 复制简介

9.2 建立副本集

9.3 配置副本集

9.3.1 rs辅助函数

9.3.2 网络注意事项

9.4 修改副本集配置

9.5 设计副本集

选举机制

9.6 成员配置选项

9.6.1 选举仲裁者

9.6.2 优先级

9.6.3 隐藏成员

9.6.4 延迟备份节点

9.6.5 创建索引

第10章 副本集的组成

10.1 同步

10.1.1 初始化同步

10.1.2 处理陈旧数据

10.2 心跳

成员状态

10.3 选举

10.4 回滚

如果回滚失败

第11章 从应用程序连接副本集

11.1 客户端到副本集的连接

11.2 等待写入复制

11.2.1 可能导致错误的原因

11.2.2 "w"的其他值

11.3 自定义复制保证规则

11.3.1 保证复制到每个数据中心的一台服务器上

11.3.2 保证写操作被复制到可见节点中的“大多数”

11.3.3 创建其他规则

11.4 将读请求发送到备份节点

11.4.1 出于一致性考虑

11.4.2 出于负载的考虑

11.4.3 何时可以从备份节点读取数据

第12章 管理

12.1 以单机模式启动成员

12.2 副本集配置

12.2.1 创建副本集

12.2.2 修改副本集成员

12.2.3 创建比较大的副本集

12.2.4 强制重新配置

12.3 修改成员状态

12.3.1 把主节点变为备份节点

12.3.2 阻止选举

12.3.3 使用维护模式

12.4 监控复制

12.4.1 获取状态

12.4.2 复制图谱

12.4.3 复制循环

12.4.4 禁用复制链

12.4.5 计算延迟

12.4.6 调整oplog大小

12.4.7 从延迟备份节点中恢复

12.4.8 创建索引

12.4.9 在预算有限的情况下进行复制

12.4.10 主节点如何跟踪延迟

12.5 主从模式

12.5.1 从主从模式切换到副本集模式

12.5.2 让副本集模仿主从模式的行为

第四部分 分片

第13章 分片

13.1 分片简介

13.2 理解集群的组件

13.3 快速建立一个简单的集群

第14章 配置分片

14.1 何时分片

14.2 启动服务器

14.2.1 配置服务器

14.2.2 mongos进程

14.2.3 将副本集转换为分片

14.2.4 增加集群容量

14.2.5 数据分片

14.3 MongoDB如何追踪集群数据

14.3.1 块范围

14.3.2 拆分块

14.4 均衡器

第15章 选择片键

15.1 检查使用情况

15.2 数据分发

15.2.1 升序片键

15.2.2 随机分发的片键

15.2.3 基于位置的片键

15.3 片键策略

15.3.1 散列片键

15.3.2 GridFS的散列片键

15.3.3 流水策略

15.3.4 多热点

15.4 片键规则和指导方针

15.4.1 片键限制

15.4.2 片键的势

15.5 控制数据分发

15.5.1 对多个数据库和集合使用一个集群

15.5.2 手动分片

第16章 分片管理

16.1 检查集群状态

16.1.1 使用sh.status查看集群摘要信息

16.1.2 检查配置信息

16.2 查看网络连接

16.2.1 查看连接统计

16.2.2 限制连接数量

16.3 服务器管理

16.3.1 添加服务器

16.3.2 修改分片的服务器

16.3.3 删除分片

16.3.4 修改配置服务器

16.4 数据均衡

16.4.1 均衡器

16.4.2 修改块大小

16.4.3 移动块

16.4.4 特大块

16.4.5 刷新配置

第五部分 应用管理

第17章 了解应用的动态

17.1 了解正在进行的操作

17.1.1 寻找有问题的操作

17.1.2 终止操作的执行

17.1.3 假象

17.1.4 避免幽灵操作

17.2 使用系统分析器

17.3 计算空间消耗

17.3.1 文档

17.3.2 集合

17.3.3 数据库

17.4 使用mongotop和monogostat

第18章 数据管理

18.1 配置身份验证

18.1.1 身份验证基本原理

18.1.2 配置身份验证

18.1.3 身份验证的工作原理

18.2 建立和删除索引

18.2.1 在独立的服务器上建立索引

18.2.2 在副本集上建立索引

18.2.3 在分片集群上建立索引

18.2.4 删除索引

18.2.5 注意内存溢出杀手

18.3 预热数据

18.3.1 将数据库移至内存

18.3.2 将集合移至内存

18.3.3 自定义预热

18.4 压缩数据

18.5 移动集合

18.6 预分配数据文件

第19章 持久性

19.1 日记系统的用途

19.1.1 批量提交写入操作

19.1.2 设定提交时间间隔

19.2 关闭日记系统

19.2.1 替换数据文件

19.2.2 修复数据文件

19.2.3 关于mongod.lock文件

19.2.4 隐蔽的异常退出

19.3 MongoDB无法保证的事项

19.4 检验数据损坏

19.5 副本集中的持久性

第六部分 服务器管理

第 20 章 启动和停止MongoDB

20.1 从命令行启动

使用配置文件

20.2 停止MongoDB

20.3 安全性

20.3.1 数据加密

20.3.2 SSL安全连接

20.4 日志

第21章 监控MongoDB

21.1 监控内存使用状况

21.1.1 有关电脑内存的介绍

21.1.2 跟踪监测内存使用状况

21.1.3 跟踪监测缺页中断

21.1.4 减少索引树的脱靶次数

21.1.5 IO延迟

21.1.6 跟踪监测后台刷新平均时间

21.2 计算工作集的大小

一些工作集的例子

21.3 跟踪监测性能状况

跟踪监测空余空间

21.4 监控副本集

第22章 备份

22.1 对服务器进行备份

22.1.1 文件系统快照

22.1.2 复制数据文件

22.1.3 使用mongodump

22.2 对副本集进行备份

22.3 对分片集群进行备份

22.3.1 备份和恢复整个集群

22.3.2 备份和恢复单独的分片

22.4 使用mongooplog进行增量备份

第23章 部署MongoDB

23.1 设计系统结构

23.1.1 选择存储介质

23.1.2 推荐的RAID配置

23.1.3 CPU

23.1.4 选择操作系统

23.1.5 交换空间

23.1.6 文件系统

23.2 虚拟化

23.2.1 禁止内存过度分配

23.2.2 神秘的内存

23.2.3 处理网络磁盘的IO问题

23.2.4 使用非网络磁盘

23.3 系统配置

23.3.1 禁用NUMA

23.3.2 更智能地预读取数据

23.3.3 禁用大内存页面

23.3.4 选择一种磁盘调度算法

23.3.5 不要记录访问时间

23.3.6 修改限制

23.4 网络配置

23.5 系统管理

23.5.1 时钟同步

23.5.2 OOM Killer

23.5.3 关闭定期任务

附录A 安装MongoDB

A.1 选择一个版本

A.2 在Windows系统中安装

A.3 在POSIX系统(Linux、Mac OS X、Solaris)中安装

附录B 深入MongoDB

B.1 BSON

B.2 线路协议

B.3 数据文件

B.4 命名空间与区段

B.5 内存映射存储引擎

术语

MongoDB权威指南(第2版)是2014年由人民邮电出版社出版,作者[美]KristinaChodorow。

得书感谢您对《MongoDB权威指南(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
程序是怎样跑起来的(第3版) 电子书
一本书帮你了解从用户双击程序图标到程序开始运行之间到底发生了什么。
C++ 黑客编程揭秘与防范(第3版) 电子书
反病毒工程师入门精选,包含反病毒领域的所有知识,是亿万读者的引路名师。
Python基础教程(第3版) 电子书
手把手带你从零开始学习Python。
分布式对象存储——原理、架构及Go语言实现 电子书
适读人群 :本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。   赠送价值249元的云存储专家视频课程   掌握云存储理论,动手搭建分布式对象存储架构   云存储已经是大家司空见惯的一种网络服务了,比如大家常用的百度云盘、美亚S3、微软的OneDrive、苹果公司的iCloud和谷歌的Google Cloud等。云存储背后的原理是怎样的,又是如何实现的呢?   本书完全从云存储的需求出发讲述对象存储的原理,并且带领读者使用Go语言编程,循序渐进、从无到有地建立起一个分布式对象存储的架构。也就是说,本书首先介绍为什么要这么做,然后解释怎么做。   本书适合云存储方面的研究者、工程师或架构师阅读,也可以供对云存储技术感兴趣的读者参考。在读完本书之后,你将较为深入地理解对象存储服务,甚至能够实现自己的对象存储服务。   本书包括以下内容:    对象存储简介;    分布式系统原理;    元数据以及元数据服务;    数据校验和去重;    数据冗余和即时修复;    断点续传;    数据压缩;    数据维护。
大数据技术原理与应用(第2版) 电子书
国内高校大数据课程知名教师倾心之作,带你“零基础”学习大数据。