MongoDB权威指南第二版PDF电子书下载完整高清版|百度网盘下载
编辑评论:
The Definitive Guide to MongoDB 2nd Edition 是一本广受好评的 MongoDB 书籍。与传统的关系数据库不同,MongoDB 是一个面向文档的数据库。本书介绍了面向文档的存储,并使用MongoDB的无模式数据模型来处理文档、集合和多个数据库
精彩的书摘
9.3.1 rs 辅助函数
请注意上面 rs 启动 () 命令中的 rs。 rs 是一个全局变量,其中包含与复制相关的辅助函数(您可以执行 rs.hetp() 以查看可用的辅助函数)。这些函数中的大多数只是数据库命令的包装器。
对辅助函数和低级数据库命令都有一些了解是很好的,有时直接使用数据库命令比使用辅助函数更容易。
9.3.2 网络笔记
副本集的每个成员都必须能够连接到所有其他成员(包括它自己)。如果遇到某些成员无法访问其他正在运行的成员的错误,则需要更改网络配置,以便成员可以相互通信。此外,localhost 不应用作副本集配置中的主机名。如果所有的副本集成员都运行在同一台机器上,那么 localhost 可以正确解析,但是运行在一台机器上的副本集没有意义;如果副本集在多台机器上运行,则无法将 localhost 解析为正确的主机名。 MongoDB 允许副本集的所有成员在同一台机器上运行,这使得本地测试更容易,但如果您在配置中混合使用 localhost 和非 localhost 主机名,MongoDB 会发出警告。
9.4 修改副本集配置
可以随时修改副本集的配置:可以添加或删除成员,可以修改现有成员。许多常见的操作都有相应的 shell 辅助函数。例如,您可以使用 rs.add 将新成员添加到副本集。
关于作者
Google 的软件工程师 Kristina Chodorow 是 MongoDB 项目的核心成员 5 年。她领导了 MongoDB 的副本集开发并编写了 PHP 和 Perl 驱动程序。
译者简介:
软件工程师邓强,常年关注互联网行业,对互联网产品和技术有着浓厚的兴趣,苹果迷,谷歌迷。在职业生涯的前几年,他一直在金融行业从事软件系统的开发,后来不顾一切地投身于互联网。目前在一个新成立的小型互联网创业团队工作。
本书的组织结构
快速入门
第 1 章将简要介绍 MongoDB 的背景:为什么创建这个项目,它想要实现什么,以及为什么选择它。第 2 章继续介绍 MongoDB 的一些核心概念和术语,以及如何开始使用数据库和 shell。
部署 MongoDB 接下来的两章介绍了 MongoDB 开发人员需要的基础知识。第 3 章描述了如何执行一些基本的写操作,包括不同安全和速度等级的实现细节。第 4 章重点介绍如何查找文档和创建复杂查询。本章还介绍了如何迭代结果以及其他一些结果处理方法,例如排序、数量限制和忽略。
高级指南
接下来的三章将深入探讨一些比存储和检索数据更复杂的用途。第 5 章介绍了索引是什么以及它们在 MongoDB 中的使用方式。它还介绍了用于检查和修改索引以及索引管理的工具。第 6 章介绍了使用 MongoDB 聚合数据的各种方法,包括计数、查找唯一值、文档分组和 MapReduce。第 7 章补充了前几章未涉及的内容,例如文件存储、服务器端 JavaScript、数据库命令和数据库引用。
管理
接下来的三章讲的是编程风格,重点是MongoDB的操作。第 8 章讨论了启动数据库、监控 MongoDB 服务器和维护部署安全性的各种选项。本章还介绍了如何对存储在 MongoDB 中的数据进行合理的数据备份。第 9 章介绍如何设置 MongoDB 复制,包括配置标准主从集群和设置自动故障转移。本章还将揭示复制的工作原理和调整选项。第 10 章探讨了如何横向扩展 MongoDB,包括什么是自动分片,如何设置它,以及它如何影响您的应用程序。
使用 MongoDB 开发应用程序
第 11 章介绍了几个使用 MongoDB 的示例应用程序,用 Java、PHPPython 和 Ruby 编写。这些例子展示了如何将本书前面介绍的概念应用到特定的语言和问题领域。
附录
附录 A 描述了 MongoDB 版本控制方案以及如何在 Windows、Os X 和 Linux 下安装它的详细信息。附录 B 描述了 MongoDB shell 中的一些有用的技巧和工具。附录 C 更详细地描述了 MongoDB 的内部工作:存储引擎、数据格式和 MongoDB 传输协议。
丰富的数据模型
MongoDB 是面向文档的数据库,而不是关系数据库。放弃关系模型的主要原因是为了获得更方便的可扩展性,当然还有其他好处。
基本思想是用更灵活的“文档”模型代替原来的“行”概念。面向文档的方法可以嵌入文档或数组,因此单个记录可以表示非常复杂的层次关系。使用面向对象语言的开发者是这样看数据的,所以感觉很自然。
MongoDB 没有模式:文档的键既不是预先定义的,也不是固定的。由于没有要更改的模式,因此通常不需要迁移大量数据。应用层可以处理新的或丢失的键,而不是将所有数据放入单个模型中。这使开发人员可以非常轻松地更改数据模型。