内容简介:
MongoDB是为处理大数据而生的一款面向文档的数据库,由10gen公司开发和维护。本书作者Kyle Banker曾在该公司负责MongoDB驱动程序的维护,对各方面技术细节都了如指掌,本书也是在大量第一手资料的基础上形成的,其权威性毋庸置疑。
本书基于MongoDB 2.0+,全面系统地讲解了设计、实现、安装和维护MongoDB的各方面内容。全书分三部分,第一部分从基于文档的数据与传统关系型数据库的差别讲起,介绍了MongoDB的基本概念及安装使用。第二部分是一个实战式教程,结合示例讲解了MongoDB的CRUD操作,以及实现系统安全、灵活和高效的设计原则及模式。第三部分侧重数据库的维护和管理,深入到MongoDB背后的技术细节,给出了对管理员和开发者都极有价值的建议。
本书篇幅适中,内容深浅得当,文字通俗易懂,再配以直观形象的插图和贴近实战的代码示例,非常适合MongoDB学习者、开发人员及管理员学习参考。
本书内容:
MongoDB介绍及其优劣势
MongoDB的Shell界面
使用MongoDB的简单应用
如何通过以文档为中心的方式看待数据
编写查询,以MapReduce方式聚合数据
更新和删除数据及相关性能考量
寻找和改进慢查询
MongoDB的复制与分片
MongoDB的监控、备份及恢复
目 录
第一部分 入门指南
第1章 为现代Web而生的数据库2
1.1 生于云端3
1.2 MongoDB的主要特性4
1.2.1 文档数据模型4
1.2.2 即时查询6
1.2.3 二级索引7
1.2.4 复制8
1.2.5 速度和持久性9
1.2.6 数据库扩展10
1.3 MongoDB的核心服务器和工具11
1.3.1 核心服务器11
1.3.2 JavaScript Shell12
1.3.3 数据库驱动12
1.3.4 命令行工具13
1.4 为什么选择MongoDB13
1.4.1 MongoDB与其他数据库的对比14
1.4.2 使用场景和生产部署16
1.5 提示与局限18
1.6 小结18
第2章 MongoDB JavaScript Shell19
2.1 深入MongoDB Shell19
2.1.1 启动Shell20
2.1.2 插入与查询20
2.1.3 更新文档22
2.1.4 删除数据23
2.2 创建索引并查询24
2.2.1 创建一个大集合24
2.2.2 索引与explain()25
2.3 基本管理27
2.3.1 获取数据库信息27
2.3.2 命令工作原理29
2.4 获得帮助30
2.5 小结31
第3章 使用MongoDB编写程序32
3.1 通过Ruby使用MongoDB32
3.1.1 安装与连接33
3.1.2 用Ruby插入文档34
3.1.3 查询与游标34
3.1.4 更新与删除35
3.1.5 数据库命令36
3.2 驱动是如何工作的37
3.2.1 对象ID生成37
3.2.2 BSON38
3.2.3 网络传输40
3.3 构建简单的应用程序41
3.3.1 配置41
3.3.2 收集数据42
3.3.3 查看归档43
3.4 小结46
第二部分 MongoDB与应用程序开发
第4章 面向文档的数据48
4.1 Schema设计原则48
4.2 设计电子商务数据模型49
4.2.1 产品与分类50
4.2.2 用户与订单53
4.2.3 评论55
4.3 具体细节:数据库、集合与文档56
4.3.1 数据库56
4.3.2 集合58
4.3.3 文档与插入61
4.4 小结65
第5章 查询与聚合66
5.1 电子商务查询66
5.1.1 产品、分类与评论66
5.1.2 用户与订单68
5.2 MongoDB查询语言70
5.2.1 查询选择器70
5.2.2 查询选项78
5.3 聚合指令79
5.3.1 根据用户对评论进行分组79
5.3.2 根据地域对订单应用MapReduce81
5.4 详解聚合82
5.4.1 max()与min()82
5.4.2 distinct83
5.4.3 group83
5.4.4 map-reduce84
5.5 小结86
第6章 更新、原子操作与删除87
6.1 文档更新入门87
6.2 电子商务数据模型中的更新89
6.2.1 产品与分类90
6.2.2 评论93
6.2.3 订单94
6.3 原子文档处理96
6.3.1 订单状态变迁97
6.3.2 库存管理98
6.4 具体细节:MongoDB的更新与删除101
6.4.1 更新类型与选项101
6.4.2 更新操作符103
6.4.3 findAndModify命令106
6.4.4 删除106
6.4.5 并发性、原子性与隔离性107
6.4.6 更新性能说明107
6.5 小结109
第三部分 精通MongoDB
第7章 索引与查询优化112
7.1 索引理论112
7.1.1 思想实验112
7.1.2 核心索引概念115
7.1.3 B树118
7.2 索引实践119
7.2.1 索引类型119
7.2.2 索引管理121
7.3 查询优化125
7.3.1 识别慢查询125
7.3.2 分析慢查询127
7.3.3 查询模式133
7.4 小结134
第8章 复制135
8.1 复制概述135
8.1.1 为什么复制很重要135
8.1.2 复制的使用场景136
8.2 副本集137
8.2.1 配置137
8.2.2 复制的工作原理141
8.2.3 管理146
8.3 主从复制152
8.4 驱动与复制152
8.4.1 连接与故障转移153
8.4.2 写关注154
8.4.3 读扩展155
8.4.4 标签156
8.5 小结158
第9章 分片159
9.1 分片概述159
9.1.1 何谓分片160
9.1.2 分片的工作原理161
9.2 示例分片集群164
9.2.1 配置164
9.2.2 写入分片集群168
9.3 分片集群的查询与索引173
9.3.1 分片查询类型173
9.3.2 索引177
9.4 选择分片键178
9.4.1 低效的分片键178
9.4.2 理想的分片键179
9.5 生产环境中的分片180
9.5.1 部署与配置180
9.5.2 管理184
9.6 小结188
第10章 部署与管理189
10.1 部署189
10.1.1 部署环境189
10.1.2 服务器配置193
10.1.3 数据的导入与导出194
10.1.4 安全195
10.2 监控与诊断197
10.2.1 日志197
10.2.2 监控工具198
10.2.3 外部监控应用程序201
10.2.4 诊断工具(mongosniff、bsondump)201
10.3 维护202
10.3.1 备份与恢复202
10.3.2 压紧与修复204
10.3.3 升级205
10.4 性能调优205
10.4.1 为提升性能检查索引和查询206
10.4.2 添加内存206
10.4.3 提升磁盘性能207
10.4.4 水平扩展207
10.4.5 寻求专业帮助207
10.5 小结208
附录A 安装209
附录B 设计模式216
附录C 二进制数据与GridFS226
附录D 在PHP、Java与C++中使用MongoDB232
附录E 空间索引240
《最后一个人类》内容简介:你是否想过,人类遭受的疾病、衰老和死亡并非命中注定? 你是否认同,人类的身体系统是有缺陷的,可以通
色彩是需要设计的,色彩是设计的一部分。色彩怎么设计才算好?特定项目的色彩设计思考脉络是什么样的?对待他人作品,有没有可以
《敏捷软件开发(珍藏版)》内容简介:本书作为敏捷软件开发的里程碑之作,重点介绍了敏捷软件开发的原则、模式和实践。全书共6部分
涂子沛、王涛、刘洪、刘远立、郎永淳鼎力推荐!聚首大生命产业前沿专家,解析数字医疗现状与趋势,构建全新医疗时代发展蓝图!国家
前言鸣谢简介1.用闪电书写——塞穆尔·莫尔斯与电磁电报创造发明家通讯的需要电的选择莫尔斯的第一个电报其他科学家:惠斯登电报
《曾国藩家书》内容简介:本书辑录了曾国藩在清道光30年至同治10年前后达30年的翰苑和从武生涯的书信一百六十余篇。家书涉及的内容
信息管理技术-全国计算机等级考试三级教程-2011年版 本书特色 本书根据教育部考试中心制定的《全国计算机等级考试三级信息管理技术考试大纲(2007年版)》的要...
《雾都孤儿》内容简介:《雾都孤儿》(1838),又译《奥利弗·退斯特》,是作者的第一部社会小说。作品通过孤儿奥利弗的凄苦遭遇,
《不畏将来 不念过去2》内容简介:畅销两百万册作者十二升华之作。时隔6年十二用全新观点,告诉你如何从容面对恋爱、婚姻和原生家庭
计算机GBK汉字输入法速查字典 目录 凡例汉语拼音编码索引部首索引(一)部首目录(二)部首索引表(三)难检字笔画索引表四角号码索引字典正文附录四角号码查字法汉字...
《Photoshop修片,超简单!》内容简介:这是一本学习起来“超简单”的修片实用教程。本书以案例为主导,以新颖的写作形式介绍了包括
《少年读山海经·千万里江山》内容简介:《山海经》是一部包罗万象的千古奇书,是一座研究古代地理和神话的宝库。“少年读山海经”
《文化·建造·自然:当代建筑理论课五题》内容简介:这是一本当代建筑理论课程的学生论文集,涵盖形式、建造、城市、自然、文化观
《刑辩私塾》内容简介:本书旨在通过对个案的办理过程的复盘、思考和总结,传授具体的刑事辩护理念、思维和技术。本书更多的是启发
图解计算机组装与维护 本书特色 一图一文,原景呈现,步步清晰。图解计算机组装与维护 内容简介 本书主要介绍了计算机组装与维护的相关知识,其主要架构有3篇:第1篇...
《《封神演义》考论》内容简介:本书以正统叙事与民间叙事的冲突融合为切入点,主要讨论了殷商之际的历史及其在正统叙事与民间叙事
《详解AutoCAD 2022机械设计(第6版)》内容简介:本书结合典型机械设计案例,详细讲解AutoCAD 2022机械设计的知识要点,让读者在学
“设计师能否满足房主的需求,设计出好住有好看的家?”“如何运用家居设计,让日常生活更方便?”“照片里那种好看的家,真的可
《JavaWeb开发实战1200例(第2卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用JavaWeb进行程序开发
《增长密码:大型网站百万流量运营之道》内容简介:本书是作者在SEO行业12年成功经验的总结。对于大型网站的流量运营方法,作者以S