本书根据MongoDB的新版本做了相应更新,其中包含MongoDB n全新的所有特性,包括版本2.2中引入的聚集框架和版本2.4中引入的哈希索引。MongoDB是流行的“大数据”NoSQL数据库技术,并且正处于发展中。来自10gen的David Hows以及具有丰富MongoDB开发经验的Peter Membrey和Eelco Plugge,组成了本书的专家团队,他们在本书中分享了自己的专业知识和经验,帮助你了解成为MongoDB专家所需的所有知识。
主要内容
◆ 在所有主流平台上搭建MongoDB,包括Windows、Linux、OS X和云平台(例如Rackspace、Azure和 EC2)
◆ 用GridFS和新的聚集框架
◆ 使用非SQL命令处理数据
◆ 使用PHP或Python编写应用
◆ 优化MongoDB
◆ 掌握MongoDB管理方面的知识,包括复制、复制标签和标签分片
——David Hows
★编写书籍是一个团队性的工作。即使有时只有一个作者,在幕后也会有许多人帮助将所有东西整合在一起。因此我非常感谢MongoDB社区和Apress的所有人,感谢他们的辛勤工作、耐心和支持。特别要感谢Dave和Eelco,他们帮助完成了本书的第2版。
我还想感谢Chuck Smith,一位让我迷上世界语并让我保持有很高兴趣的朋友(维基百科世界语版本的创始人)。这正好与本书第2版的编写产生了交集,我对学习世界语的极大兴趣延伸到了本书的编写上。另外还必须感谢L.L.Zamenhof博士,他创建了世界语。一个远超于时代的人,我希望能带着这个梦想前进。
最后,感谢妻子Sarah的耐心和长久的支持。
——Peter Membrey
★感谢9gag社区,没有他们本书就无法在数月前完成。
——Eelco Plugge
★我想感谢mongodb-user和mongodb-dev邮件列表中的所有成员,感谢他们能够忍耐我提出的无休止的问题。
——Tim Hawkins
★我接触数据库的时间相对较晚,从2006年才开始使用MySQL。在学完所有计算机本科都提供的逻辑课程之后,我开始使用MySQL构建出一个完整的LAMP架构,其中用到了一些基本表。此时,我并未对SQL表管理的复杂性进行深入思考。不过,随着时间的流逝,我看到了存储越来越多异构数据的需要,并且随着时间的推移,简单的模式可以如何在它的生命周期中成长和演变。
我一次接触MongoDB是在2011年,当时Peter Membrey建议我不要使用包含30个键行以及30个值行的上下文表,而是应该使用MongDB实例来存储数据。就像所有开发者在面对一项新技术时的感觉一样,我对之嗤之以鼻并且坚持我原来的计划。直到我使用糟糕的设计已经完成一半代码时,Peter仍然坚持我应该尝试使用MongoDB,此时我才接受意见。如同所有来自SQL阵营的开发者一样,MongoDB能够接受任何类型数据并且可以根据任何搜索条件返回这些数据的能力让我感到震惊。直到现在我也仍然大呼过瘾。
——David Hows
★本书的组织方式在本书中,Peter、Eelco Plugge、Tim Hawkins和我都希望能够完全地展示出我们在学习MongoDB时的经验:在保持设计简单和清晰的同时,教会你如何使用MongoDB。每章内容都将展示一个单独的样例数据库,因此你可以按照模块或线性的方式阅读本书;这完全取决于你自己。这意味着如果愿意,你可以略过某些特定的章节,而不会影响你对其他内容的学习。
本书的样例命令将显示在它们的输出中。它们将以等宽的“代码”字体出现,并且会以加粗的方式显示,以便与其他结果输出加以区分。在大多数章节中,你都会遇到提示、警告和注意,它们包含有用的有时甚至极其重要的信息。
——David Hows