当前位置:主页 > 计算机电子书 > 程序设计 > MONGODB下载
MONGODB实战

MONGODB实战 PDF 第2版

  • 更新:2020-06-08
  • 大小:102 MB
  • 类别:MONGODB
  • 作者:suyuanKyle、Banker,Pe
  • 出版:华中科技大学出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

MONGODB实战》分三部分通过大量的实例代码介绍了MongoDB数据库底层的实现以及大型互联网Web项目数据库设计原则。第一部分对MongoDB进行了整体介绍,并介绍了实际的开发例子,另外还介绍了JavaScript shell和Ruby驱动。第二部分通过逐步实现一个电商数据模型和实现必要的CRUD操作来详细介绍了MongoDB的文档数据模型、查询语言和CRUD(新增、读取、更新和删除)操作。本书的第三后部分从数据库专家的角度来看待MongoDB,介绍了数据库的性能、部署、容错和伸缩性等所有的知识。

本书适合想深入学习MongoDB的开发人员,主要关注MongoDB数据库。

目录

  • 第一部分 入门 1
  • 第1章 全新Web数据库 3
  • 1.1 为互联网而生 5
  • 1.2 MongoDB键特性 5
  • 1.2.1 文档数据模型 5
  • 1.2.2 ad hoc查询 9
  • 1.2.3 索引 9
  • 1.2.4 复制 10
  • 1.2.5 加速与持久化 11
  • 1.2.6 伸缩 13
  • 1.3 核心服务和工具 14
  • 1.3.1 核心服务器 14
  • 1.3.2 JavaScript shell 15
  • 1.3.3 数据库驱动 15
  • 1.3.4 命令行工具 16
  • 1.4 为什么是MongoDB? 17
  • 1.4.1 MongoDB与其他数据库对比 17
  • 1.4.2 使用场景和部署 20
  • 1.5 提示和限制 22
  • 1.6 MongoDB历史 23
  • 1.7 其他资源 25
  • 1.8 总结 25
  • 第2章 通过JavaScript shell操作MongoDB 27
  • 2.1 Diving into the深入MongoDB shell 28
  • 2.1.1 启动shell 28
  • 2.1.2 数据库、集合和文档 28
  • 2.1.3 插入和查询 29
  • 2.1.4 更新文档 31
  • 2.1.5 删除数据 35
  • 2.1.6 shell的其他特性 35
  • 2.2 使用索引创建和查询 36
  • 2.2.1 创建大集合 36
  • 2.2.2 索引和explain( ) 38
  • 2.3 基本管理 42
  • 2.3.1 获取数据库信息 43
  • 2.3.2 命令如何执行 44
  • 2.4 获取帮助 45
  • 2.5 总结 47
  • 第3章 编写代码操作MongoDB 48
  • 3.1 通过Ruby lens连接MongoDB 49
  • 3.1.1 安装与连接 49
  • 3.1.2 Ruby里插入文档数据 50
  • 3.1.3 查询与光标 51
  • 3.1.4 更新和删除 52
  • 3.1.5 数据库命令 53
  • 3.2 驱动工作原理 54
  • 3.3 构建简单的应用 56
  • 3.3.1 设置 56
  • 3.3.2 搜集数据 57
  • 3.3.3 查看存档 60
  • 3.4 总结 63
  • 第二部分 MongoDB应用系统开发 65
  • 第4章 面向文档的数据 67
  • 4.1 schema设计原则 67
  • 4.2 设计电商网站数据模型 69
  • 4.2.1 schema基础知识 69
  • 4.2.2 用户和订单 73
  • 4.2.3 评价 75
  • 4.3 核心概念:数据库、集合、文档 76
  • 4.3.1 数据库 76
  • 4.3.2 集合 79
  • 4.3.3 文档和插入 83
  • 4.4 总结 87
  • 第5章 构建查询 88
  • 5.1 电子商务查询 88
  • 5.1.1 产品、类别和评论 88
  • 5.1.2 用户和订单 91
  • 5.2 MongoDB的查询语言 92
  • 5.2.1 查询条件和选择器 92
  • 5.2.2 查询选择 104
  • 5.3 总结 106
  • 第6章 聚合 107
  • 6.1 聚合框架概览 108
  • 6.2 电商聚合例子 109
  • 6.2.1 商品、类别和评价 111
  • 6.2.2 用户和订单 117
  • 6.3 聚合管道操作符 120
  • 6.3.1 $project 120
  • 6.3.2 $group 121
  • 6.3.3 $match、$sort、$skip、$limit 123
  • 6.3.4 $unwind 123
  • 6.3.5 $out 124
  • 6.4 重塑文档 124
  • 6.4.1 字符串函数 125
  • 6.4.2 算术运算函数 126
  • 6.4.3 日期函数 126
  • 6.4.4 逻辑函数 127
  • 6.4.5 集合操作符 128
  • 6.4.6 其他函数 129
  • 6.5 理解聚合管道性能 129
  • 6.5.1 聚合管道选项 130
  • 6.5.2 聚合框架的explain( )函数 130
  • 6.5.3 allowDiskUse 选项 134
  • 6.5.4 聚合光标选项 134
  • 6.6 其他聚合功能 135
  • 6.6.1 .count( )和.distinct( ) 135
  • 6.6.2 map-reduce 136
  • 6.7 总结 138
  • 第7章 更新、原子操作和删除 140
  • 7.1 文档更新概要 141
  • 7.1.1 通过替换修改 141
  • 7.1.2 通过操作符修改 142
  • 7.1.3 比较两个方法 142
  • 7.1.4 决定:替换与操作符 143
  • 7.2 电商数据模型更新 144
  • 7.2.1 商品和目录 144
  • 7.2.2 评价 148
  • 7.2.3 订单 150
  • 7.3 原子文档处理 152
  • 7.3.1 订单状态转换 153
  • 7.3.2 库存管理 155
  • 7.4 核心要点:MongoDB更新与删除 160
  • 7.4.1 更新类型与参数选项 160
  • 7.4.2 更新操作符 161
  • 7.4.3 findAndModify命令 169
  • 7.4.4 删除 169
  • 7.4.5 并发、原子性和隔离 170
  • 7.4.6 更新性能注意事项 171
  • 7.5 复习更新操作符 172
  • 7.6 总结 173
  • 第三部分 精通MongoDB 175
  • 第8章 索引与查询优化 177
  • 8.1 索引理论 177
  • 8.1.1 精心策划的实验 178
  • 8.1.2 核心索引概念 181
  • 8.1.3 B-树 185
  • 8.2 索引实战 186
  • 8.2.1 索引类型 186
  • 8.2.2 索引管理 189
  • 8.3 查询优化 194
  • 8.3.1 找出慢速查询 195
  • 8.3.2 检查慢速查询 199
  • 8.3.3 查询模式 217
  • 8.4 总结 219
  • 第9章 文本搜索 220
  • 9.1 文本搜索—不仅仅是模式匹配 221
  • 9.1.1 文本搜索与模式匹配 222
  • 9.1.2 文本搜索与网页搜索 223
  • 9.1.3 MongoDB文本搜索与专业搜索引擎 225
  • 9.2 下载曼宁图书类别数据 228
  • 9.3 定义文本搜索索引 229
  • 9.3.1 文本索引的大小 230
  • 9.3.2 分配索引名字并为集合里的所有字段建立索引 231
  • 9.4 基本的文本搜索 232
  • 9.4.1 更复杂的搜索 233
  • 9.4.2 文本搜索分数 235
  • 9.4.3 根据文本搜索分数排序结果 236
  • 9.5 聚合框架文本搜索 237
  • 9.6 文本搜索语言 240
  • 9.6.1 在索引里指定语言 241
  • 9.6.2 在文档里指定语言 242
  • 9.6.3 在搜索中指定语言 243
  • 9.6.4 可用的语言 245
  • 9.7 总结 245
  • 第10章 WiredTiger与可拔插存储 246
  • 10.1 可拔插存储引擎API 246
  • 10.2 WiredTiger 248
  • 10.2.1 切换到WiredTiger 248
  • 10.2.2 迁移数据到WiredTiger 249
  • 10.3 与MMAPv1对比 250
  • 10.3.1 配置文件 251
  • 10.3.2 插入脚本与基准测试脚本 252
  • 10.3.3 插入测试结果 255
  • 10.3.4 读性能测试脚本 256
  • 10.3.5 读性能结果 257
  • 10.3.6 测试结论 259
  • 10.4 其他可拔插存储引擎的例子 260
  • 10.5 高级主题 261
  • 10.5.1 可拔插引擎如何工作? 261
  • 10.5.2 数据结构 263
  • 10.5.3 锁 265
  • 10.6 总结 265
  • 第11章 复制 267
  • 11.1 复制概览 267
  • 11.1.1 为什么复制很重要 268
  • 11.1.2 复制的使用场景和限制 269
  • 11.2 可复制集 270
  • 11.2.1 安装 270
  • 11.2.2 可复制集群工作原理 277
  • 11.2.3 管理 283
  • 11.3 驱动与复制 291
  • 11.3.1 连接与故障转移 291
  • 11.3.2 写关注点 293
  • 11.3.3 读伸缩 294
  • 11.3.4 标签 296
  • 11.4 总结 298
  • 第12章 使用分片集群扩展系统 299
  • 12.1 分片集群概述 300
  • 12.1.1 什么是分片集群 300
  • 12.1.2 什么时候分片? 301
  • 12.2 理解分片集群的组件 302
  • 12.2.1 分片:存储应用程序数据 303
  • 12.2.2 mongos路由:路由操作 303
  • 12.2.3 配置服务器:存储元数据 303
  • 12.3 在分片集群中分散数据 304
  • 12.3.1 分片集群中的数据分散方式 305
  • 12.3.2 分布式数据库分片 306
  • 12.3.3 集合分片 306
  • 12.4 构建一个例子分片集群 307
  • 12.4.1 启动mongod和mongos服务器 308
  • 12.4.2 配置集群 310
  • 12.4.3 分片集合 311
  • 12.4.4 写入数据到分片集群 312
  • 12.5 分片集群查询和建立索引 318
  • 12.5.1 查询路由 318
  • 12.5.2 分片集群中建立索引 319
  • 12.5.3 分片集群中的explain()工具 320
  • 12.5.4 分片集群中聚合 322
  • 12.6 选择分片键 322
  • 12.6.1 非平衡写入(热点) 323
  • 12.6.2 不可分割的数据块(粗粒度) 324
  • 12.6.3 糟糕的定位(分片键不在查询中) 325
  • 12.6.4 理想的分片键 325
  • 12.6.5 设计折中(email应用) 326
  • 12.7 生产环境下分片集群 328
  • 12.7.1 配置 328
  • 12.7.2 部署 330
  • 12.7.3 维护 332
  • 12.8 总结 336
  • 第13章 部署与管理 337
  • 13.1 硬件与配置 337
  • 13.1.1 集群拓扑 337
  • 13.1.2 部署环境 339
  • 13.1.3 配置 344
  • 13.2 监控与诊断 346
  • 13.2.1 日志 346
  • 13.2.2 诊断命令 347
  • 13.2.3 诊断工具 347
  • 13.2.4 监控服务 349
  • 13.2.5 外部监控应用 349
  • 13.3 备份 350
  • 13.3.1 mongodump和mongorestore 350
  • 13.3.2 基于数据文件的备份 351
  • 13.3.3 MMS备份 352
  • 13.4 安全 352
  • 13.4.1 安全环境 353
  • 13.4.2 网络安全 353
  • 13.4.3 验证 356
  • 13.4.4 可复制集验证 359
  • 13.4.5 分片集群验证 360
  • 13.4.6 企业安全特性 360
  • 13.5 管理任务 360
  • 13.5.1 数据导入和导出 360
  • 13.5.2 压缩和修复 361
  • 13.5.3 升级 363
  • 13.6 性能故障排除 363
  • 13.6.1 工作集 363
  • 13.6.2 性能悬崖 364
  • 13.6.3 查询交互 365
  • 13.6.4 寻求专业帮助 366
  • 13.7 部署检查列表 366
  • 13.8 总结 367
  • 附录A 安装 368
  • A.1 安装 368
  • A.1.1 生产部署 368
  • A.1.2 32位和64位 369
  • A.2 Linux下安装MongoDB 369
  • A.2.1 使用预编译二进制文件安装 369
  • A.2.2 使用包管理器 370
  • A.3 Mac OS X下安装MongoDB 370
  • A.3.1 预编译二进制版本 370
  • A.3.2 使用包管理器 371
  • A.4 Windows下安装MongoDB 372
  • A.5 从源码编译MongoDB 373
  • A.6 故障排除 373
  • A.6.1 错误的架构 373
  • A.6.2 不存在的数据目录 374
  • A.6.3 缺少权限 374
  • A.6.4 未绑定端口 374
  • A.7 基本配置选项 374
  • A.8 安装Ruby 376
  • A.8.1 Linux和Mac OS X 376
  • A.8.2 Windows 376
  • 附录B 设计模式 377
  • B.1 嵌入与引用 377
  • B.2 一对多 377
  • B.3 多对多 378
  • B.4 树 379
  • B.5 工作队列 382
  • B.6 动态特性 383
  • B.7 事务 384
  • B.8 定位与预计算 385
  • B.9 反模式 386
  • B.9.1 粗心索引 386
  • B.9.2 交错类型 386
  • B.9.3 单一集合 386
  • B.9.4 大型、深嵌文档 386
  • B.9.5 一个用户一个集合 387
  • B.9.6 不可分片集合 387
  • 附录C 二进制数据和网格文件系统 388
  • C.1 简单二进制存储 388
  • C.1.1 存储缩略图 389
  • C.1.2 存储MD5 389
  • C.2 网格文件 390
  • C.2.1 Ruby中的GridFS 391
  • C.2.2 使用mongofiles操作GridFS 393

资源下载

资源下载地址1:https://pan.baidu.com/s/12Z6Q6BH49ComvuDpJjwZDQ

相关资源

网友留言