开发者如何学好 MongoDB
Posted GitChat精品课
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发者如何学好 MongoDB相关的知识,希望对你有一定的参考价值。
-
MongoDB 是什么 -
我如何确定我需要学习 MongoDB -
开发者应该掌握 MongoDB 的哪些知识 -
学习的选择和困境
数据库 fotoo 中有两个集合,它们分别是 player 和 books。每个集合中都包含了许多文档,例如集合 books 中关于书籍《红楼梦》的文档,集合 player 中关于球员 James 的文档。
SELECT * FROM tablename
db.tablename.find()
在面对多步骤的查询条件时,MongoDB 更游刃有余。例如:
“统计数据库 artic 中 score 大于 70 且小于 90 的文档数量”
这样的需求,用 MongoDB 的聚合操作就可以轻松完成,对应示例如下:
> db.artic.aggregate([
{$match: {score: {$gt: 70, $lt: 90}}},
{$group: {_id: null, number: {$sum: 1}}}
])
这个例子或许简单了些,在 MySQL 中我们可以用 count 和 where 完成,但如果复杂度再提高四五个等级呢?例如在此基础上增加对某个字段的运算、替换、排序、分组计数、增删字段,用 MySQL 来实现就会很头疼,而 MongoDB 的聚合可以让我们轻松地完成这类复杂需求。
02
MongoDB 是近些年涌现的几十种 NoSQL 中第一梯队的成员,另外一个为人熟知的是 Redis。
你可能会有这样的疑问:”我如何确定我需要学习 MongoDB 呢“ 。
面对这个问题,我们可以通过 MongoDB 的特点和应用场景着手。
MongoDB 适合存储结构确定或不确定的文档。例如爬虫爬取的信息常缺失字段的情况或字段参差不齐的情况;
对数据库可用性要求较高的情况。MySQL 这类数据库要做到负载均衡、自动容灾和数据同步需要借助外部工具,而 MongoDB 的复制集可以让我们轻松完成这一系列的工作。相对接借助第三方工具来说,复制集的稳定性更高。
分库分表是 WEB 开发中常用到的数据库优化手段,MySQL 的分库分表要考虑的问题非常多,例如字段冗余、数据组装跨节点分页、排序和数据迁移等,而 MongoDB 的分片可以让我们轻松完成“分库分表”的工作。MongoDB 的分片机制使我们不必将心思放在由“分库分表”带来的问题,而是专注于具体需求。
同样的,MySQL 的权限控制、定义数据模型、数据库备份和恢复等功能在 MongoDB 上也有。
MongoDB 中支持地理位置的存储和查询,这意味着 MongoDB 可以用于共享单车、共享雨伞、汽车定位等业务中。
NoSQL 的产生就是为了解决例如海量数据的存储、弹性可伸缩和灵活性等方面的挑战,作为一名合格的开发者,我我们应该抽空学习 SQL 以外的数据库知识,例如 MongoDB。
03
开发者应该掌握 MongoDB 的哪些知识
MongoDB 在各个平台的安装方法
MongoDB 数据库和集合的基本操作
MongoDB 文档 CRUD 操作,包括能够丰富 CRUD 的投影和修饰符等
MongoDB 流式聚合操作,这能够在数据库层面轻松完成复杂数据的处理,而不是用编程语言来处理
MongoDB 的数据模型,虽然它可以存储不规则的文档,但有些情况下定义数据模型可以提高查询效率
当然,除了这些基本操作之外我们还可以学习更多的知识提高个人竞争力,这些知识是:
MongoDB 执行计划和索引,执行计划可以让我们清楚的了解到查询语句的效率,而索引则是优化查询效率的常用手段
MongoDB 的复制集,这是提高 MongoDB 可用性,保证数据服务不停机的最佳手段
MongoDB 的分片,分片能够在数据量变得庞大之后保证效率
MongoDB 的事物,如果你将 MongoDB 用于 WEB 网站,那么事物是你必须学习的知识
MongoDB 数据库备份和还原,有了复制集后,备份就显得不是那么重要了,但并不是没有这个需求。而且 MongoDB 的备份可以精细到文档,这就非常有意义了。
04
学习的选择和困境
有一定工作经验的开发者,大多数情况下都会选择自学。有些在网上搜索对应的文章,有些则直接翻阅官方文档。
自学的优点很多,缺点也很明显。例如:
断断续续的学习,无法保持专注学习
耗费的时间很长,虽然知道应该学习哪些方面的知识,但文档并不是按你所想而规划的,翻阅文档要费很多功夫
知识不成体系,东看看西看看,没有归纳容易忘记
学习就需要记笔记,这又是一件很费时间的事情
官方文档有些观点难以理解,卡在半路很难受
零星学了一两个月,也不确定学会了没有,内心毫无把握
要知道这种
同类型的资料在其他平台都要 300 元
直接扫描下方二维码
即可浏览详情
以上是关于开发者如何学好 MongoDB的主要内容,如果未能解决你的问题,请参考以下文章