数据库是信息时代的“老黄牛”,就像希腊神话中的擎天神Atlas1一样,它们默默地支撑着我们赖以生存的数字世界。发布评论和微博,乃至查找并排序内容,这些操作从本质上来说都是和数据库打交道,而我们恰恰会对此熟视无睹。正因为这个基础的“隐蔽功能”,我总是会对数据库心存敬畏,这种敬畏和走过本来只让汽车通行的悬索大桥时所产生的敬畏没什么分别。
1. Atlas是希腊神话中的擎天神,因背叛宙斯被降罪用双肩支撑苍天。——译者注
数据库有很多种形式。图书馆里的图书目录和卡片分类都算是其中的一种,昔日Perl程序员使用的特殊结构的文本文件也是。也许现在最广为人知的数据库,就是功能丰富、让人赚得盆满钵盈的关系型数据库了,它支撑着这个世界上的很多软件。这些关系型数据库,连同它们那理想化的第三范式和富于表达力的SQL接口,仍然让那些保守派肃然起敬。
但是,作为一名有几年工作经验的Web应用程序开发者,我渴望尝试一些能替代占据统治地位的关系型数据库的后起之秀,发现MongoDB之后,便对它爱不释手。MongoDB使用类似JSON的结构来表示数据,我喜欢这个设计。JSON简单、直观而且易用。MongoDB还将其查询语言构建于JSON之上,使得这个新数据库在使用上很舒适很协调。接口之外的一些引人注目的特性让它更具魅力,例如方便复制和分片。我使用MongoDB构建了一些应用程序,亲身体验了它带给开发的舒适性之后,便深深爱上了MongoDB。
机缘巧合,我加入了10gen——领导开发开源数据库MongoDB的公司。两年来,我有机会改善多款客户端驱动,与众多客户一起部署他们的MongoDB。我希望在这一过程中所积累的经验都能原汁原味地体现在你正阅读的这本书中。
作为一款还在不断完善的作品,MongoDB还有很长的路要走,但它已经成功地支撑了成百上千的应用程序,运行在大大小小的数据库集群之上,而且每天都在进步。MongoDB每天都能为不少开发者带来惊喜,甚至是幸福,希望你也能拥抱MongoDB,感受它的魅力。