编辑推荐

  

  全面讲解MongoDB的相关知识,使读者对MongoDB有全面的认识

  以*直接、*细致的方式指导读者轻松掌握MongoDB的安装、部署与使用

  以实际工作框架为例子进行讲解,使读者真正能胜任MongoDB的开发管理工作

  由浅入深,层层递进,路线清晰


  

内容简介

  

  MongoDB作为*受欢迎的文档存储类型的NoSQL数据库,越来越多的公司在使用它。《MongoDB游记之轻松入门到进阶(数据库技术丛书)》以符合初学者的思维方式,系统全面、层层递进地介绍了MongoDB数据库,通过《MongoDB游记之轻松入门到进阶(数据库技术丛书)》的学习,读者能够胜任实际工作环境中MongoDB的相关开发管理工作。

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》共分四个部分23章,第一部分讲解了MongoDB的相关概念和原理以及其内部工作机制,可以让读者对MongoDB有一个全面的认识。第二部分和第三部分从应用角度,结合实例讲解了MongoDB的安装、配置、部署、开发、集群部署和管理等在实际工作中会用到的技能。第四部分是经验部分,这部分是作者多年使用MongoDB后总结的技巧,对读者在工作中使用MongoDB有极大的参考价值。

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》适合MongoDB的初学者,希望深入了解MongoDB安装部署、开发优化的软件工程师,希望深入了解MongoDB管理、集群扩展的数据运维管理员,以及任何对MongoDB相关技术感兴趣的读者。


  

作者简介

  张泽泉,毕业于四川理工学院,数据工程师、中级职称软件设计师、CSDN博客专家。致力于数据采集、数据分析、数据分布式运算架构等技术的应用与研究。多年一线MongoDB数据库存储、部署、开发经验,以及将其应用于房地产数据分析、金融数据分析、基因数据分析等领域行业经验。

精彩书评

  NULL

目录

第一部分基础与架构理论篇
第1章初识MongoDB3
1.1MongoDB简介3
1.1.1MongoDB是什么3
1.1.2MongoDB的历史3
1.1.3MongoDB的发展情况4
1.1.4哪些公司在用MongoDB5
1.2MongoDB的特点5
1.3MongoDB应用场景6
1.3.1MongoDB适用于以下场景6
1.3.2MongoDB不适合的场景7
第2章MongoDB的结构8
2.1数据库8
2.1.1数据库的层次8
2.1.2数据的命名8
2.1.3自带数据库9
2.2普通集合9
2.2.1集合是什么9
2.2.2集合的特点—无模式9
2.2.3集合命名9
2.2.4子集合10
2.3固定集合(Capped)10
2.3.1Capped简介10
2.3.2Capped属性特点10
2.3.3Capped应用场景10
2.4文档11
2.4.1文档简介11
2.4.2文档的特点11
2.4.3文档的键名命名规则11
2.5数据类型11
2.5.1基本数据类型11
2.5.2数字类型说明12
2.5.3日期类型说明14
2.5.4数组类型说明16
2.5.5内嵌文档类型说明16
2.5.6_id键和ObjectId对象说明17
2.5.7二进制类型说明——小文件存储19
2.6索引简介19
2.6.1什么是索引19
2.6.2索引的作用20
2.6.3普通索引20
2.6.4唯一索引20
2.6.5地理空间索引21
第3章MongoDB的大文件存储规范GridFs22
3.1GridFS简介22
3.2GridFS原理23
3.3GridFS应用场景24
3.4GridFS的局限性24
第4章MongoDB的分布式运算模型MapReduce25
4.1MapReduce简介25
4.2MapReduce原理26
4.3MapReduce应用场景28
第5章MongoDB存储原理29
5.1存取工作流程29
5.2存储引擎30
5.2.1MMAP引擎31
5.2.2MMAPv1引擎31
5.2.3WiredTiger引擎32
5.2.4In-Memory33
5.2.5引擎的选择34
5.2.6未来的引擎34
第6章了解MongoDB复制集35
6.1复制集简介35
6.1.1主从复制和副本集35
6.1.2副本集的特点38
6.2副本集工作原理38
6.2.1oplog(操作日志)38
6.2.2数据同步39
6.2.3复制状态和本地数据库39
6.2.4阻塞复制40
6.2.5心跳机制40
6.2.6选举机制41
6.2.7数据回滚42
第7章了解MongoDB分片43
7.1分片的简介43
7.2分片的工作原理44
7.2.1数据分流44
7.2.2chunkSize和块的拆分47
7.2.3平衡器和块的迁移47
7.3分片的应用场景48
第二部分管理与开发入门篇
第8章安装MongoDB51
8.1版本和平台的选择51
8.1.1版本的选择51
8.1.2平台的选择52
8.1.332位和64位52
8.2Windows系统安装MongoDB53
8.2.1查看安装环境53
8.2.2安装步骤53
8.2.3目录文件了解55
8.3Linux系统安装MongoDB56
8.3.1虚拟机简介56
8.3.2虚拟机安装以及安装Linux系统58
8.3.3安装MongoDB67
8.4MacOSX系统安装MongoDB73
8.4.1查看安装环境73
8.4.2官网安装包安装73
8.4.3Mac软件仓库安装74
第9章启动和停止MongoDB75
9.1命令行方式启动和参数75
9.1.1Windows系统命令行启动MongoDB75
9.1.2Linux系统命令行启动MongoDB76
9.1.3MacOS系统命令行启动MongoDB79
9.2启动参数80
9.3配置文件方式启动82
9.4启动MongoDB客户端84
9.5关闭MongoDB84
9.5.1Windows系统设置MongoDB关闭84
9.5.2Linux系统设置MongoDB关闭86
9.5.3MacOS系统设置MongoDB关闭87
9.6设置MongoDB开机启动88
9.6.1Windows系统设置MongoDB开机启动88
9.6.2Linux系统设置MongoDB开机启动89
9.6.3MacOS系统设置MongoDB开机启动93
9.7修复未正常关闭的MongoDB96
第10章基本命令97
10.1数据库常用命令97
10.2集合99
10.3文档101
10.4索引104
10.5基本查询106
10.5.1find简介106
10.5.2游标107
10.6条件查询108
10.6.1与操作108
10.6.2或操作$or108
10.6.3大于$gt108
10.6.4小于$lt108
10.6.5大于等于$gte108
10.6.6小于等于$lte108
10.6.7类型查询$type108
10.6.8是否存在$exists109
10.6.9取模$mod109
10.6.10不等于$ne109
10.6.11包含$in110
10.6.12不包含$nin110
10.6.13$not:反匹配110
10.7特定类型查询110
10.7.1null110
10.7.2正则查询(模糊查询)110
10.7.3嵌套文档112
10.7.4数组112
10.8高级查询$where115
10.8.1JavaScript语言简介115
10.8.2JavaScript编程简单例子115
10.8.3JavaScript与$where结合使用115
10.9查询辅助116
10.9.1条数限制limit116
10.9.2起始位置skip116
10.9.3排序sort116
10.10修改器116
10.10.1$set116
10.10.2$unset117
10.10.3$inc117
10.10.4$push117
10.10.5$pushAll117
10.10.6$pull117
10.10.7$addToSet118
10.10.8$pop118
10.10.9$rename118
10.10.10$bit118
10.11原生聚合运算119
10.11.1数量查询count119
10.11.2不同值distinct119
10.11.3分组group120
10.11.4灵活统计MapReduce123
10.12聚合管道127
10.12.1aggregate用法127
10.12.2管道操作器128
10.12.3管道表达式139
10.12.4复合使用示例141
第11章GUI工具:数据库外部管理工具144
11.1MongoDB的GUI工具简介144
11.2Robomongo基本操作144
11.2.1连接MongoDB145
11.2.2创建删除数据库145
11.2.3插入文档145
11.2.4查询文档146
11.2.5更新文档146
11.2.6创建索引147
11.2.7执行JavaScript148
第12章监控149
12.1原生管理接口监控149
12.2使用serverStatus在Shell监控150
12.3使用mongostat在Shell监控151
12.4使用第三方插件监控152
第13章安全和访问控制153
13.1绑定监听ip153
13.2设置监听端口154
13.3用户认证154
13.3.1启用认证154
13.3.2添加用户155
13.3.3用户权限控制155
13.3.4用户登录157
13.3.5修改密码157
13.3.6删除用户157
第14章数据管理158
14.1数据备份mongodump158
14.2数据恢复mongorestore159
14.3数据导出mongoexport159
14.3.1导出JSON格式159
14.3.2导出CSV格式159
14.4数据导入mongoimport160
14.4.1JSON格式导入160
14.4.2CSV格式导入160
第15章MongoDB驱动161
15.1MongoDB驱动支持的开发语言161
15.2驱动使用流程163
第16章Java操作MongoDB165
16.1安装JDK165
16.2Eclipse安装166
16.3加载驱动167
16.4查阅Java操作语法167
16.5测试操作168
16.5.1连接数据库168
16.5.2插入数据169
16.5.3查询数据170
16.5.4更新数据170
16.5.5删除数据171
16.5.6聚合方法执行171
16.5.7操作GridFS172
16.5.8运行示例173
第三部分管理与开发进阶篇
第17章副本集部署177
17.1总体思路177
17.2MongoDB环境准备178
17.3创建目录181
17.4创建Key182
17.5初始化副本集183
17.6数据同步测试190
17.7故障切换测试192
17.8Java程序连接MongoDB副本集测试194
17.9主从复制部署196
第18章分片部署198
18.1总体思路198
18.2创建3个ShardServer201
18.2.1创建目录201
18.2.2以分片ShardServer模式启动201
18.3启动ConfigServer202
18.3.1创建目录202
18.3.2以分片ConfigServer模式启动202
18.4启动RouteProcess203
18.5配置sharding204
18.6对数据库mytest启用分片205
18.7集合启用分片206
18.8分片集群插入数据测试208
18.9分片的管理209
18.9.1移除ShardServer,回收数据209
18.9.2新增ShardServer211
第19章分片+副本集部署212
19.1总体思路212
19.2创建3个复制集215
19.2.1创建目录215
19.2.2以复制集模式启动215
19.2.3初始化复制集216
19.3创建分片需要的ConfigServer与RouteProcess217
19.3.1创建目录217
19.3.2启动ConfigServer、RouteProcess218
19.4配置分片219
第20章springMVC+maven+MongoDB框架搭建221
20.1SpringMVC和Maven简介221
20.2Eclipse安装Maven插件221
20.3新建Maven类型的Web项目222
20.4搭建SpringMVC+MongoDB框架224
20.4.1jar包引入224
20.4.2新建SpringMVC配置文件228
20.4.3新建MongoDB配置文件230
20.4.4配置web.xml231
20.4.5创建index.jsp和IndexController232
20.4.6启动Web项目233
第21章注册登录功能的实现235
21.1UI框架Bootstrap235
21.1.1简介235
21.1.2应用Bootstrap235
21.2新建用户实体236
21.3注册功能编写237
21.3.1注册页面代码237
21.3.2注册后端代码239
21.4登录功能编写241
21.4.1登录页面代码241
21.4.2登录后端代码243
21.5运行测试244
21.6SpingDataMongoDB操作246
21.6.1插入数据247
21.6.2查询数据247
21.6.3更新数据249
21.6.4删除数据250
21.6.5聚合方法执行250
21.6.6操作GridFS251
21.6.7运行示例253
第四部分管理与开发经验篇
第22章MongoDB开发的经验257
22.1尽量选取稳定新版本64位的MongoDB257
22.2数据结构的设计257
22.3查询的技巧259
22.4安全写入数据262
22.5索引设置的技巧264
22.6不要用GridFS处理小的二进制文件268
22.7优化器profiler269
第23章MongoDB管理的经验271
23.1MongoDB安全管理271
23.2不要将MongoDB与其他服务部署到同一台机器上273
23.3单机开启日志Journal,多机器使用副本集274
23.4生产环境不要信任repair恢复的数据275
23.5副本集管理276
23.6副本集回滚丢失的数据278
23.7分片的管理279
23.8MongoDB锁280
附录AMongoDB地理位置距离单位285
附录B相关网址287


精彩书摘

  第2章

  ?MongoDB的结构?

  要很好地使用MongoDB,需要对它的组成结构进行了解,本章我们就来学习MongoDB的结构。

  MongoDB的组成结构如下:数据库包含集合,集合包含文档,文档包含一个或多个键值对,如图2-1所示。

  图2-1文档包含键值对key:value

  2.1数据库

  2.1.1数据库的层次

  MongoDB中数据库包含集合,集合包含文档。一个MongoDB服务器实例可以承载多个数据库,数据库之间是完全独立的。每个数据库有独立的权限控制,在磁盘上不同的数据库放置在不同的文件中。一个应用的所有数据建议存储在同一个数据库中。当同一个MongoDB服务器上存放多个应用数据时,建议使用多个数据库,每个应用对应一个数据库。

  2.1.2数据的命名

  数据库通过名字来标识。数据库名可以使用满足以下条件的任意UTF-8字符串来命名:

  ?不能是空字符串("")。

  ?不能含有''(空格)、.(点)、$、/、\和\0(空字符)。

  ?应全部小写。

  ?最多64字节。

  数据库名有这么多的限制是因为数据库名最终会变成系统中的文件。

  2.1.3自带数据库

  MongoDB有一些一安装就存在的数据库,这些数据库介绍如下:

  (1)admin

  从权限角度来看,这是超级管理员("root")数据库。在admin数据库中添加的用户会具有管理数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,如列出所有的数据库或者关闭服务器。

  (2)local

  这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。

  (3)config

  当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

  2.2普通集合

  2.2.1集合是什么

  集合就是一组文档。同一个应用的数据我们建议存放在同一个数据库中,但是一个应用可能有很多个对象,比如一个网站可能需要记录用户信息,也需要记录商品信息。集合解决了上述问题,我们可以在同一个数据库中存储一个用户集合和商品集合。集合类似于关系型数据库中的表。

  2.2.2集合的特点—无模式

  集合是无模式的,也就是说一个集合里的文档可以是各式各样的,非常自由。集合跟表最大的差异在于表是有表头的,每一列存的什么信息需要对应,表在存储信息之前需要先设计表,每一列是什么数据类型,字符串类型的数据是不能存储进数值类型的列中的。而集合则不需要设计结构,只要满足文档的格式就可以存储,即使他们的键名不同,非常灵活。MongoDB会自动识别每个字段的类型。

  2.2.3集合命名

  集合通过名字来标识区分。集合名可以是满足下列条件的任意UTF-8字符串。

  ?不能是空字符串("")。

  ?不能含有\0(空字符),这个字符表示集合名的结尾。

  ?不能以“system.”开头,这是为系统集合保留的前缀。

  ?不能含有保留字符$。这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。有些驱动程序的确支持在集合名里面包含$,但是我们不建议使用。

  2.2.4子集合

  子集合是集合下的另一个集合,可以让我们更好地组织存放数据。惯例是使用“.”字符分开命名来表示子集合。

  在MongoDB中使用子集合,可以让数据的组织更清晰。例如我做一个论坛模块,按照面向对象的编程我们应该有一个论坛的集合forum,但是论坛功能里应该还有很多对象,比如用户、帖子。我们就可以把论坛用户集合命名为forum.user,把论坛帖子集合命名为forum.post。

  也就是我们把数据存储在子集合forum.user和forum.post里,数据forum集合是不存储数据的,甚至可以删除掉。也就是说forum这个集合跟它的子集合没有数据上的关系。子集合只是为了让数据组织结构更清晰。

  2.3固定集合(Capped)

  2.3.1Capped简介

  MongoDB固定集合(CappedCollections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象它就像一个环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。这意味着固定集合在新文档插入的时候自动淘汰最早的文档。

  2.3.2Capped属性特点

  (1)对固定集合插入速度极快。

  (2)按照插入顺序的查询输出速度极快。

  (3)能够在插入最新数据时,淘汰最早的数据。

  (4)固定集合文档按照插入顺序储存,默认情况下查询全部就是按照插入顺序返回的,也可以使用$natural属性反序返回。

  (5)可以插入及更新,但更新不能超出collection的大小,否则更新失败。

  (6)不允许删除,但是可以调用drop()删除集合中的所有行,drop后需要显式地重建集合。

  (7)在32位机器上一个capppedcollection的最大值约为482.5MB,64位机器上只受系统文件大小的限制。

  2.3.3Capped应用场景

  (1)储存日志信息。

  (2)缓存一些少量的文档。

  一般来说,固定集合适用于任何想要自动淘汰过期文档的场景,没有太多的操作限制。

  2.4文档

  2.4.1文档简介

  文档是MongoDB中数据的基本单元。我们前面已经讲过MongoDB数据存储格式为BSON。键值对按照BSON格式组合起来存入MongoDB就是一个文档。

  2.4.2文档的特点

  (1)每一个文档都有一个特殊的键“_id”,它在文档所处的集合中是唯一的。

  (2)文档中的键值对是有序的,前后顺序不同就是不同的文档。

  (3)文档中的键值对,值不仅可以是字符串,还可以是数值,日期等数据类型。

  (4)文档的键值对区分大小写。

  (5)文档的键值对不能用重复的键。

  2.4.3文档的键名命名规则

  文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

  (1)键名不能含有\0(空字符)。

  (2)键名最好不含有.和$,它们存在特别含义。

  (3)键名最好不使用下划线“_”开头。

前言/序言

  我思考了很长时间,到底要写一本什么样的书,才能让读者轻松、全面地认识MongoDB。

  从2012年有幸开始接触MongoDB并在实际工作环境中使用它,不知不觉已经过了5年多的时间。在这5年中,大数据兴起,NoSQL来势汹汹。

  “有MongoDB使用经验优先”“精通MongoDB等NoSQL数据库”这样的要求也渐渐出现在招聘要求中。MongoDB作为NoSQL数据库的典型代表,越来越多的公司在使用它。

  在开始学习使用MongoDB的过程中,因为相关书籍资料太少,一路走来确实算是翻山越岭,跋山涉水。这也是《MongoDB游记之轻松入门到进阶(数据库技术丛书)》名的由来。

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》定位

  关于《MongoDB游记之轻松入门到进阶(数据库技术丛书)》的定位,在我的想象中应该有如下几点。

  1.这不是一本严肃的教科书

  在轻松的氛围中快速学习知识才能达到比较好的效果,所以我会在书中尽可能多地加入图画以帮助读者加深理解。

  2.它能让读者从零开始学习数据库

  笔者阅读了很多有关MongoDB的书籍,我发现大多数MongoDB的书籍在讲解时都喜欢拿关系型数据库进行类比学习,这样会对一个数据库的初学者(不了解关系型数据库的读者)造成困扰,所以我会尽量少用关系型数据库的用法来解释MongoDB,让没有关系型数据库基础的读者也能独立地理解学习MongoDB,而对有关系型数据库基础的读者能抛开关系型数据的用法学习MongoDB。

  3.这是一本入门的书,但不代表它不全面

  请原谅我没有在《MongoDB游记之轻松入门到进阶(数据库技术丛书)》中进行深入的原理讲解,因为我一直认为对于学习一个技术来说踏出第一步尤其重要。一旦你开始使用它,随着解决以后遇到的问题,你自然而然地就会更深入地理解它。

  当然,为了让初学者对MongoDB有个全面的了解,我会尽可能地把它写得全面。

  4.它能够帮助读者建立NoSQL的思维

  随着《MongoDB游记之轻松入门到进阶(数据库技术丛书)》从理论到实战的讲解,读者能初步了解并且适应NoSQL的思维,或者说脱离关系型数据库的束缚。在之后的实际开发应用中读者会感受到NoSQL数据库的魅力——自由(对之前经常使用关系型数据库的读者而言这一点感受会尤其深刻)。

  5.阅读完《MongoDB游记之轻松入门到进阶(数据库技术丛书)》后读者能够胜任实际工作环境中MongoDB的相关开发管理工作

  这是《MongoDB游记之轻松入门到进阶(数据库技术丛书)》唯一且最终的目的。只要跟着书中的思路一步一步走,读者就能达到相关工作的要求。

  6.一本好书应该包含作者的思想,一些不会过时的东西

  当我开始写这《MongoDB游记之轻松入门到进阶(数据库技术丛书)》的时候,MongoDB的版本是3.4,当这《MongoDB游记之轻松入门到进阶(数据库技术丛书)》写完发行的时候,我不能确保软件版本还是3.4,这也是计算机方面的书籍总是容易过时的原因。考虑到这一点,我在写《MongoDB游记之轻松入门到进阶(数据库技术丛书)》时会讲解一些我获取更新知识的途径、我的学习思路以及分享一些有趣的网站,以确保当《MongoDB游记之轻松入门到进阶(数据库技术丛书)》中的例子因为版本原因有些不再适用时,读者能很快地获取到最新的软件用法在哪里。希望这些方法不仅仅为读者在学习MongoDB上,也能在学习其他计算机技术时有所帮助。

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》特点

  ?内容全面:对MongoDB相关知识进行全面讲解,让读者对MongoDB有全面的认识。

  ?轻松入门:以最直接、最细致的方式指导读者轻松掌握MongoDB安装、部署与使用。

  ?层次清晰:理论与实践部分分离,4个部分由浅入深,层层递进,学习路线清晰。

  ?实战引导:以实际工作框架为例子,讲解MongoDB的运用,让读者真正能胜任MongoDB的开发管理工作。

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》适合读者

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》适合MongoDB的初学者,希望深入了解MongoDB安装部署、开发优化的软件工程师,希望深入了解MongoDB管理、集群扩展的数据运维管理员,以及任何对MongoDB相关技术感兴趣的读者。

  注意事项

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》中所用示例以及操作步骤全部经过作者实际操作,检验有效,请读者在学习时按照《MongoDB游记之轻松入门到进阶(数据库技术丛书)》选用的软件版本进行操作,已经在使用MongoDB软件的开发者在查阅《MongoDB游记之轻松入门到进阶(数据库技术丛书)》示例时,请注意MongoDB版本和驱动版本以及环境配置。

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》使用方式

  初学者

  希望初学者能够通读《MongoDB游记之轻松入门到进阶(数据库技术丛书)》,理论部分快速阅读,实践部分动手操作。

  初学者如果时间充裕,建议按《MongoDB游记之轻松入门到进阶(数据库技术丛书)》章节先后顺序进行学习,先通读理论,如有不懂的地方可以不必深究,然后实战,接着进阶架构,最后学习经验篇。

  初学者如果时间紧迫,可以从实战部分开始学习,直接上手使用MongoDB参与到工作中,闲暇时再学习理论会有更深刻的理解,接着进阶架构,最后再学习经验篇。

  有相关经验的技术人员

  有相关经验的技术人员可以根据自身需求和薄弱环节选择性阅读。闲暇时可阅读理论部分和经验部分,《MongoDB游记之轻松入门到进阶(数据库技术丛书)》理论部分和经验部分是作者结合自身工作经验对MongoDB的理解,希望能与有经验读者的看法相互印证碰撞,让读者形成自己的理解。

  工作时也可参考《MongoDB游记之轻松入门到进阶(数据库技术丛书)》相关章节,基本命令章节、Java驱动操作章节、SpringDataMongoDB驱动操作章节,管理维护命令、集群构建章节等,可以作为读者身边的速查手册。

  祝大家开卷有益!

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》示例代码

  《MongoDB游记之轻松入门到进阶(数据库技术丛书)》示例代码以及软件开发包下载地址(注意数字与字母大小写)如下:

  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官网、MongoDB中文社区、CSDN博客等网站的大量文章,感谢这些使用MongoDB并乐于分享的大神们。作者已经尽力对书中的知识点用词用语做了各种查证,但由于时间仓促,难免有错误和遗漏之处,恳请广大读者提出宝贵意见。

  奋斗在一线的程序员,加班加点是常有的事情。编写《MongoDB游记之轻松入门到进阶(数据库技术丛书)》使用了作者一年的周末和假期时间以及很多个10小时以后的美好时光。没有家人的鼓励和支持是很难坚持下来的。在此特别感谢我的家人刘悦梦露的陪伴和谅解,以及好朋友杨娅苏、古曙强、姚思伶对我的鼓励。

  最后特别感谢清华大学出版社的夏毓彦老师和他的同事们,正因为有了他们的辛勤工作,这《MongoDB游记之轻松入门到进阶(数据库技术丛书)》才能顺利出版。

  张泽泉

  2017年7月于成都


其他推荐