我思考了很长时间,到底要写一本什么样的书,才能让读者轻松、全面地认识MongoDB。
从2012年有幸开始接触MongoDB并在实际工作环境中使用它,不知不觉已经过了5年多的时间。在这5年中,大数据兴起,NoSQL来势汹汹。
“有MongoDB使用经验优先”“精通MongoDB等NoSQL数据库”这样的要求也渐渐出现在招聘要求中。MongoDB作为NoSQL数据库的典型代表,越来越多的公司在使用它。
在开始学习使用MongoDB的过程中,因为相关书籍资料太少,一路走来确实算是翻山越岭,跋山涉水。这也是本书名的由来。
本书定位
关于本书的定位,在我的想象中应该有如下几点。
1.这不是一本严肃的教科书
在轻松的氛围中快速学习知识才能达到比较好的效果,所以我会在书中尽可能多地加入图画以帮助读者加深理解。
2.它能让读者从零开始学习数据库
笔者阅读了很多有关MongoDB的书籍,我发现大多数MongoDB的书籍在讲解时都喜欢拿关系型数据库进行类比学习,这样会对一个数据库的初学者(不了解关系型数据库的读者)造成困扰,所以我会尽量少用关系型数据库的用法来解释MongoDB,让没有关系型数据库基础的读者也能独立地理解学习MongoDB,而对有关系型数据库基础的读者能抛开关系型数据的用法学习MongoDB。
3.这是一本入门的书,但不代表它不全面
请原谅我没有在本书中进行深入的原理讲解,因为我一直认为对于学习一个技术来说踏出第一步尤其重要。一旦你开始使用它,随着解决以后遇到的问题,你自然而然地就会更深入地理解它。
当然,为了让初学者对MongoDB有个全面的了解,我会尽可能地把它写得全面。
4.它能够帮助读者建立NoSQL的思维
随着本书从理论到实战的讲解,读者能初步了解并且适应NoSQL的思维,或者说脱离关系型数据库的束缚。在之后的实际开发应用中读者会感受到NoSQL数据库的魅力——自由(对之前经常使用关系型数据库的读者而言这一点感受会尤其深刻)。
5.阅读完本书后读者能够胜任实际工作环境中MongoDB的相关开发管理工作
这是本书唯一且最终的目的。只要跟着书中的思路一步一步走,读者就能达到相关工作的要求。
6.一本好书应该包含作者的思想,一些不会过时的东西
当我开始写这本书的时候,MongoDB的版本是3.4,当这本书写完发行的时候,我不能确保软件版本还是3.4,这也是计算机方面的书籍总是容易过时的原因。考虑到这一点,我在写本书时会讲解一些我获取更新知识的途径、我的学习思路以及分享一些有趣的网站,以确保当本书中的例子因为版本原因有些不再适用时,读者能很快地获取到最新的软件用法在哪里。希望这些方法不仅仅为读者在学习MongoDB上,也能在学习其他计算机技术时有所帮助。
本书特点
?内容全面:对MongoDB相关知识进行全面讲解,让读者对MongoDB有全面的认识。
?轻松入门:以最直接、最细致的方式指导读者轻松掌握MongoDB安装、部署与使用。
?层次清晰:理论与实践部分分离,4个部分由浅入深,层层递进,学习路线清晰。
?实战引导:以实际工作框架为例子,讲解MongoDB的运用,让读者真正能胜任MongoDB的开发管理工作。
本书适合读者
本书适合MongoDB的初学者,希望深入了解MongoDB安装部署、开发优化的软件工程师,希望深入了解MongoDB管理、集群扩展的数据运维管理员,以及任何对MongoDB相关技术感兴趣的读者。
注意事项
本书中所用示例以及操作步骤全部经过作者实际操作,检验有效,请读者在学习时按照本书选用的软件版本进行操作,已经在使用MongoDB软件的开发者在查阅本书示例时,请注意MongoDB版本和驱动版本以及环境配置。
本书使用方式
初学者
希望初学者能够通读本书,理论部分快速阅读,实践部分动手操作。
初学者如果时间充裕,建议按本书章节先后顺序进行学习,先通读理论,如有不懂的地方可以不必深究,然后实战,接着进阶架构,最后学习经验篇。
初学者如果时间紧迫,可以从实战部分开始学习,直接上手使用MongoDB参与到工作中,闲暇时再学习理论会有更深刻的理解,接着进阶架构,最后再学习经验篇。
有相关经验的技术人员
有相关经验的技术人员可以根据自身需求和薄弱环节选择性阅读。闲暇时可阅读理论部分和经验部分,本书理论部分和经验部分是作者结合自身工作经验对MongoDB的理解,希望能与有经验读者的看法相互印证碰撞,让读者形成自己的理解。
工作时也可参考本书相关章节,基本命令章节、Java驱动操作章节、SpringDataMongoDB驱动操作章节,管理维护命令、集群构建章节等,可以作为读者身边的速查手册。
祝大家开卷有益!
本书示例代码
本书示例代码以及软件开发包下载地址(注意数字与字母大小写)如下:
http://pan.baidu.com/s/1boKG28R
如果下载有问题,请联系booksaga@163.com,邮件主题为“MongoDB代码”。
致谢
感谢23魔方公司和大厂开发组,让我在MongoDB实战中积累了宝贵的经验。
玩网络游戏,最害怕的是游戏公司不再对游戏进行维护,玩家对游戏失去信心,游戏区变成鬼区。10gen公司在2013年正式更名为MongoDBInc,感谢MongoDBInc公司技术人员不断地完善MongoDB,让我们能够用上更快、更方便、更安全的MongoDB。没有程序是没有bug的,MongoDB在发布初期确实存在很多问题,感谢那些能够正视MongoDB并伴随它成长的人,让一款经典的数据库和一种新的数据思维没有被埋没。好在MongoDB已经长成了一颗参天大树,在数据库领域占据了一席之地。
本书在写作期间,参考了大量的MongoDB相关书籍,以及MongoDB官网、MongoDB中文社区、CSDN博客等网站的大量文章,感谢这些使用MongoDB并乐于分享的大神们。作者已经尽力对书中的知识点用词用语做了各种查证,但由于时间仓促,难免有错误和遗漏之处,恳请广大读者提出宝贵意见。
奋斗在一线的程序员,加班加点是常有的事情。编写本书使用了作者一年的周末和假期时间以及很多个10小时以后的美好时光。没有家人的鼓励和支持是很难坚持下来的。在此特别感谢我的家人刘悦梦露的陪伴和谅解,以及好朋友杨娅苏、古曙强、姚思伶对我的鼓励。
最后特别感谢清华大学出版社的夏毓彦老师和他的同事们,正因为有了他们的辛勤工作,这本书才能顺利出版。
张泽泉
2017年7月于成都