新書推薦:
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:NT$
1326.0
《
绝美的奥伦堡蕾丝披肩编织
》
售價:NT$
806.0
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:NT$
806.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:NT$
500.0
《
中国常见植物野外识别手册:青海册
》
售價:NT$
347.0
《
三星堆对话古遗址(从三星堆出发,横跨黄河流域,长江流域,对话11处古遗址,探源多元一体的中华文明)
》
售價:NT$
398.0
《
迷人的化学(迷人的科学丛书)
》
售價:NT$
653.0
《
宋代冠服图志(详尽展示宋代各类冠服 精美插图 考据严谨 细节丰富)
》
售價:NT$
398.0
|
編輯推薦: |
★重点推荐!深入云计算系列丛书:《深入云计算:Hadoop应用开发实战详解》《深入云计算:MongoDB管理与开发实战详解》《深入云计算:Hadoop源代码分析》
★精准的内容梯度安排
遵循读者学习习惯和MongoDB数据库技术应用实践,合理安排图书内容;精挑细选经典实例,嵌入完善的代码注释。
★精炼的实用经验阐述
作者多年开发经验融入其中,读者在全面掌握MongoDB应用和开发技术的同时更能获得快速分析和解决实际问题的能力。
★书中源代码下载地址:
http:www.tdpress.comzyzxtsscflwj
|
內容簡介: |
作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。本书系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发和管理方法进行了详细的讲解,也对MongoDB的工作机制进行了深入的探讨。注重实战,通过实际中的案例为读者讲解使用MongoDB时遇到的各种问题,并给出了解决方案。
本书旨在帮助云计算初学者迅速掌握MongoDB数据库,提升读者在云计算实践中的应用和开发能力。同时本书极强的系统性和大量翔实的案例对于有一定基础的中高级用户有非常好的参考价值。
|
關於作者: |
本书作者邹贵金具备多年信息系统项目开发经历,曾参与人力资源管理系统、深圳市招调工系统、电信C网项目、广东电信项目、辽宁移动项目、湖南联通网项目、辽宁移动域名改造和风格改造项目、辽宁移动二次确认项目、电信集团UDB统一认证项目、移动OMP项目(PortalONE)、专利检索项目、信托非资本市场投资管理系统、意健险承保系统等大型项目的开发和设计,积累了丰富的项目和管理经验。精通MongoDB、Oracle、SQL
Server、MySQL、DB2等大型数据库的运行维护和管理。
作为国内NoSQL领域的早期践行者之一,对NoSQL数据库中的MongoDB有着丰富的实战经验。云时代的来临,数据库至关重要,NoSQL最终将脱颖而出,到底NoSQL有哪些优势!本书以当今NoSQL数据库中最热门的MongoDB为例给大家讲解。
|
目錄:
|
第1篇 基础篇
第1章 MongoDB简介
1.1 关系型数据库简介
1.2 关系型数据库面临的问题
1.3 NoSQL的崛起
1.4 MongoDB是如何解决这些问题的
1.5 初识MongoDB
1.5.1 MongoDB的特点
1.5.2 数据模型
1.5.3 扩展性
1.5.4 功能性
1.5.5 速度快
1.5.6 简便的管理
1.5.7 使用场合
1.6 本章小结
第2章 MongoDB基本原理与安装
2.1 数据库结构
2.2 文档
2.3 集合
2.3.1 集合的无模式
2.3.2 集合的命名
2.4 MongoDB数据类型
2.4.1 基本数据类型
2.4.2 数字类型
2.4.3 日期类型
2.4.4 数组类型
2.4.5 内嵌文档类型
2.4.6 _id键和ObjectId对象
2.5 MongoDB的下载和安装
2.5.1 MongoDB的下载
2.5.2 在Windows平台下的下载与安装
2.5.3 在Linux平台下的下载与安装
2.6 MongoDB shell的使用
2.6.1 启动Shell
2.6.2 使用Shell对MongoDB的基本操作
2.6.3 使用Shell的诀窍
2.6.4 特殊的集合名
2.7 本章小结
第3章 文档的增加、修改及删除
3.1 插入并保存文档
3.1.1 插入的原理和作用
3.1.2 批量插入
3.2 删除文档
3.3 修改文档
3.3.1 整个文档的替换
3.3.2 使用修改器
3.3.3 upsert和save更新
3.3.4 修改多个文档
3.3.5 修改文档并返回修改后的文档
3.4 数据库响应
3.4.1 安全操作
3.4.2 捕获异常
3.5 客户端请求和MongoDB数据库连接
3.6 本章小结
第2篇 应用篇
第4章 查询
4.1 find简介
4.1.1 返回指定的键
4.1.2 find查询限制
4.2 条件操作符
4.2.1 $all匹配所有
4.2.2 $exists判断字段是否存在
4.2.3 null值处理
4.2.4 $mod取模运算
4.2.5 $ne不等于
4.2.6 $in包含
4.2.7 $nin不包含
4.2.8 $size数组元素个数
4.2.9 正则表达式匹配
4.2.10 Javascript 查询和$where 查询
4.2.11 count查询记录条数
4.2.12 limit限制返回记录数
4.2.13 skip 限制返回记录的起点
4.2.14 sort 排序
4.2.15 分页查询
4.2.16 随机抽取文档
4.3 distinct找出给定键所有不同的值
4.4 group分组
4.4.1 使用完成器
4.4.2 将函数作为键使用
4.5 游标
4.6 存储过程
4.7 本章小结
第5章 Capped集合
5.1 特性
5.2 使用和约束
5.3 应用
5.3.1 创建 capped collection
5.3.2 限制capped collection中对象个数
5.4 注意事项
5.5 本章小结
第6章 GridFS存储文件
6.1 为什么要用GridFS
6.2 如何实现海量存储
6.3 语言支持
6.4 简单介绍
6.5 命令行工具
6.6 内部原理
6.7 本章小结
第7章 MapReduce统计
7.1 Map函数
7.2 Reduce函数
7.3 结果存储
7.4 对Reduce函数结果进一步处理
7.5 其他控制细节
7.6 本章小结
第3篇 管理篇
第8章 管理
8.1 启动和停止MongoDB
8.1.1 使用命令行启动
8.1.2 配置文件
8.1.3 Daemon方式启动
8.1.4 mongod参数说明
8.1.5 停止数据库
8.2 访问控制
8.2.1 绑定IP内网地址访问MongoDB服务
8.2.2 设置监听端口
8.2.3 使用用户名和口令登录
8.3 命令行操作
8.3.1 通过eval参数执行指定语句
8.3.2 执行指定文件中的内容
8.4 进程控制
8.4.1 查看活动进程
8.4.2 结束进程
8.5 监控
8.5.1 使用管理接口
8.5.2 serverStatus
8.5.3 mongostat
8.5.4 第三方插件
8.6 数据导出mongoexport
8.6.1 常用导出方法
8.6.2 导出CSV格式的文件
8.7 数据导入mongoimport
8.7.1 导入JSON数据
8.7.2 导入CSV数据
8.8 数据备份和修复
8.8.1 数据文件备份
8.8.2 数据备份mongodump
8.8.3 数据恢复mongorestore
8.8.4 fsync和锁
8.8.5 从属备份
8.8.6 修复
8.9 本章小结
第4篇 性能篇
第9章 索引
9.1 索引简介
9.1.1 基础索引
9.1.2 文档索引
9.1.3 组合索引
9.1.4 唯一索引
9.1.5 强制使用索引
9.1.6 扩展索引
9.1.7 索引内嵌文档中的键
9.1.8 为排序创建索引
9.1.9 索引名称
9.1.10 删除索引
9.2 explain 执行计划
9.3 优化器profiler
9.3.1 开启profiler功能
9.3.2 查询profiler日志
9.4 索引管理
9.5 本章小结
第10章 性能优化
10.1 优化方案
10.1.1 优化方案1:创建索引
10.1.2 优化方案2:限定返回结果条数
10.1.3 优化方案3:只查询使用到的字段,而不查询所有字段
10.1.4 优化方案4:采用capped集合
10.1.5 优化方案5:采用Server Side Code Execution
10.1.6 优化方案6:hint 196
10.1.7 优化方案7:采用profiling
10.2 性能监控
10.2.1 mongosniff底层监控
10.2.2 mongostat查看运行中的实例统计信息
10.2.3 db.serverStatuss查看实例运行状态
10.2.4 db.stats查看数据库状态
10.2.5 第三方工具
10.3 本章小结
第5篇 架构篇
第11章 复制集
11.1 主从复制
11.1.1 选项
11.1.2 添加及删除源
11.2 复制集
11.2.1 部署复制集
11.2.2 初始化复制集
11.2.3 复制集中的节点
11.2.4 故障切换和活跃节点选举
11.3 主从配置信息
11.4 管理维护复制集
11.4.1 读写分离
11.4.2 故障转移
11.4.3 增减节点
11.5 工作原理
11.5.1 主从操作日志oplog
11.5.2 同步
11.5.3 复制状态和本地数据库
11.5.4 阻塞复制
11.6 管理
11.6.1 诊断
11.6.2 变更oplog的大小
11.6.3 复制的认证问题
11.7 本章小结
第12章 sharding 分片
12.1 分片简介
12.2 MongoDB中的自动分片
12.3 片键
12.3.1 将已有的集合分片
12.3.2 递增片键还是随机片键
12.3.3 片键对操作的影响
12.4 建立分片
12.4.1 启动Config Server配置服务器
12.4.2 启动mongos路由
12.4.3 启动Shard Server服务器
12.4.4 配置Sharding
12.4.5 验证Sharding正常工作
12.5 管理维护Sharding
12.5.1 列出所有的Shard Server
12.5.2 查看Sharding信息
12.5.3 判断是否是Sharding
12.5.4 对现有的集合进行Sharding
12.5.5 新增Shard Server
12.5.6 移除Shard Server
12.6 本章小结
第13章 复制集+shardin分片体
13.1 创建数据目录
13.2 配置复制集
13.2.1 配置shard1所用到的复制集
13.2.2 配置shard2所用到的复制集
13.3 配置多台Config Server
13.4 配置多台mongos
13.5 配置Shard Cluster
13.6 验证Sharding正常工作
13.7 管理分片
13.7.1 配置集合
13.7.2 分片命令
13.8 本章小结
第6篇 实例篇
第14章 实际项目搭建Mongo DB环境
14.1 环境搭建实例
14.1.1 服务器信息
14.1.2 分片结果表
14.1.3 复制集+sharding分片架构图
14.1.4 MongoDB环境搭建步骤
14.2 遇到的问题
14.3 本章小结
第15章 Java对MongoDB的基本操作实例
15.1 Java快速入门
15.1.1 安装Java驱动程序和开发环境
15.1.2 访问控制
15.1.3 Java对MongoDB数据库的基本操作
15.1.4 Java驱动的一致性
15.2 Java常用操作
15.2.1 Java对MongoDB的操作实例
15.2.2 对用户的操作
15.2.3 对集合的操作
15.2.4 对索引的操作
15.3 Java高级查询
15.3.1 通过游标获取所有的文档
15.3.2 比较运算符
15.3.3 逻辑运算符
15.3.4 正则表达式查询
15.3.5 skip跳过查询
15.4 Java操作GridFS
15.4.1 上传文件
15.4.2 查询数据
15.4.3 下载文件
15.4.4 删除数据
15.5 本章小结
第16章 C#对MongoDB的基本操作实例
16.1 C#快速入门
16.1.1 下载驱动和配置开发环境
16.1.2 访问控制
16.1.3 C#对数据库的基础操作
16.2 C#驱动一致性
16.3 C#常用操作
16.3.1 对MongoDB的操作实例
16.3.2 对用户的操作
16.3.3 对集合的操作
16.3.4 对索引的操作
16.4 C#高级查询
16.4.1 判断列名是否存在
16.4.2 比较运算符
16.4.3 逻辑运算符
16.4.4 正则表达式查询
16.4.5 跳过查询
16.5 C#操作GridFS
16.5.1 上传文件
16.5.2 查询数据
16.5.3 下载文件
16.5.4 删除数据
16.6 本章小结
|
內容試閱:
|
NoSQL数据库与传统的关系型数据库相比,具有操作简单、完全免费、源码公开、随时下载等特点,并可以用于各种商业目的。这使NoSQL产品广泛应用于各种大型门户网站和专业网站,大大降低了运营成本。
2010年,随着互联网Web
2.0网站的兴起,NoSQL在国内掀起一阵热潮,其中风头最劲的莫过于MongoDB了。越来越多的业界公司已经将MongoDB投入实际的生产环境,很多创业团队也将MongoDB作为自己的首选数据库,创造出非常多的移动互联网应用。
MongoDB的文档模型自由灵活,可以让用户在开发过程中畅顺无比。对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如。MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,完全可以满足Web
2.0和移动互联网的数据存储需求,其开箱即用的特性也大大降低了中小型网站的运维成本。
本书由浅入深,全面、系统地介绍了MongoDB基础、应用、管理、性能优化、数据库的架构、环境搭建实例、编程实例等内容。书中的每一章都提供了大量的实例代码,以方便读者进行练习和学习。每个例程都经过精挑细选,具有很强的针对性,适合各个阶段的读者学习。本书既注重基础知识,又非常注重实践,读者可以快速上手并迅速提高。通过学习本书的内容,读者不仅可以全面掌握MongoDB的应用,还可以获得快速分析和解决实际问题的能力,从而能够在最短的时间内,以最好的效果来解决实际问题,提升工作效率。
本书的特点
1.每章都提供了大量的实例代码
为了便于读者练习和学习,每章都提供了大量的实例代码。
2.结构合理,内容全面、系统
本书详细介绍了MongoDB基础、应用、管理、性能优化、数据库的架构、环境搭建实例、编程实例等内容,将实际项目开发经验贯穿于全书,思想和内容都非常丰富。根据读者的学习习惯和内容的梯度合理安排,更加适合读者学习。
3.叙述翔实,例程丰富
本书有详细的例程,每个例子都经过精挑细选,有很强的针对性。书中的程序都有完整的代码,而且代码非常简洁和高效,便于读者学习和调试。读者也可以直接重用这些代码来解决自己的问题。
4.实际项目相结合
本书提供有项目环境搭建实例、Java编程实例、C#编程实例,供读者练习和学习。
本书内容体系
本书共16章,分为6篇,各篇对应的章节和具体内容介绍如下:
第1篇包括第1~3章,主要介绍MongoDB的基础知识,对NoSQL的介绍,讲解MongoDB的文档模型,特点,文档增加、修改和删除等基本操作。学习本章之后,读者可以对MongoDB进行简单的操作。
第2篇包括第4~7章,主要介绍MongoDB的高级技术,例如高级查询、高级更新、高级功能的应用,游标,存储过程,Capped集合,GridFS
存储文件,MapReduce统计。学习本章之后,读者可以熟练的使用MongoDB来完成日常的业务需求。
第3篇包括第8章,主要介绍MongoDB常用的运维管理工具、各种命令管理以及访问控制等方面的技术,看完第三篇内容就能成为MongoDB
DBA,因为这一篇包含了MongoDB DBA所需的全部技能。
第4篇包括第9章和第10章,详细的介绍MongoDB的索引、优化,以及性能监控等方面的只是,本篇内容将使读者具备对MongoDB进行调优的能力。
第5篇包括第11~13章,重点的讲解了从主从复制、复制集、sharding分片、复制集+分片等高可用架构的细节,掌握了第五篇内容就可以独立设计出MongoDB应用系统的架构。
第6篇包括第14~16章,分别讲解了如何使用Java和C#来操作MongoDB数据库,掌握了第6篇内容后就可以将Java和C#开发技术与MongoDB数据库结合起来,从而完成特定应用系统的开发。
本书读者对象
? MongoDB初学者;
? 准备扩展MongoDB知识的开发人员;
? 有兴趣了解MongoDB的DBA或者数据库应用程序编程人员;
? MongoDB数据库爱好者;
? 正在学习数据库课程的计算机相关专业的学生;
? 利用MongoDB数据库开发应用的技术人员;
? 大中专院校的学生和老师;
? 相关培训学校的学员。
本书作者
本书作者邹贵金具备多年信息系统项目开发经历,曾参与人力资源管理系统、深圳市招调工系统、电信C网项目、广东电信项目、辽宁移动项目、湖南联通网项目、辽宁移动域名改造和风格改造项目、辽宁移动二次确认项目、电信集团UDB统一认证项目、移动OMP项目(PortalONE)、专利检索项目、信托非资本市场投资管理系统、意健险承保系统等大型项目的开发和设计,积累了丰富的项目和管理经验。精通MongoDB、Oracle、SQL
Server、MySQL、DB2等大型数据库的运行维护和管理。
作为国内NoSQL领域的早期践行者之一,对NoSQL数据库中的MongoDB有着丰富的实战经验。云时代的来临,数据库至关重要,NoSQL最终将脱颖而出,到底NoSQL有哪些优势!本书以当今NoSQL数据库中最热门的MongoDB为例给大家讲解。
特别感谢
在本书编写过程中,得到了家人、同事和朋友的支持和帮助。在此表示感谢!
在此感谢我的妻子(刘学昕)、父母、家人一直以来对我的支持,还要感谢郭现杰一直以来对我的指导和帮助,感谢所有帮助过我的人。由于时间仓促,笔者水平有限,书中难免存在遗漏和不足之处,恳请广大读者提出宝贵意见。
QQ:422245310
微博:http:weibo.comzouguijin
……
|
|