图书前言

我接触数据库的时间相对较晚,从2006年才开始使用MySQL。在学完所有计算机本科都提供的逻辑课程之后,我开始使用MySQL构建出一个完整的LAMP架构,其中用到了一些基本表。此时,我并未对SQL表管理的复杂性进行深入思考。不过,随着时间的流逝,我看到了存储越来越多异构数据的需要,并了解到随着时间的推移,简单模式如何在它的生命周期中成长和演变。

我第一次接触MongoDB是在2011年,当时Peter Membrey建议我不要使用包含30个键行以及30个值行的上下文表,而应该使用MongoDB实例来存储数据。就像所有开发者在面对一项新技术时的感觉一样,我对之嗤之以鼻并固执地坚持我原来的计划。直到我使用糟糕的设计已经完成一半代码时,Peter仍然坚称我应该尝试使用MongoDB,此时我才接受意见。如同所有来自SQL阵营的开发者一样,MongoDB能接受任何类型数据并可根据任何搜索条件返回这些数据的能力让我感到震惊。直到现在我也仍然大呼过瘾。

本书的组织方式

在本书中,Peter、Eelco Plugge、Tim Hawkins和我都希望能够完全地展示出我们在学习MongoDB时的经验:在保持设计简单和清晰的同时,教会你如何使用MongoDB。每章内容都将展示一个单独的样例数据库,因此你可以按照模块或线性的方式阅读本书;这完全取决于你自己。这意味着如果愿意,你可以略过某些特定的章节,而不会影响你对其他内容的学习。

本书的样例命令后跟输出,它们将以等宽的“代码体”出现。而且命令会以加粗方式显示,以便与其他结果输出加以予以区分。在大多数章节中,你都会遇到“提示”、“警告”和“注意”,它们包含有用的(有时甚至极其重要的)信息。

——David Hows