如何学习MongoDB?
MongoDB日趋流行,作为一个开发/运维,如何快速上手MongoDB?或者有哪些推荐的学习MongoDB的方式?
写在最前:请使用mongodb 3.2或以上版本进行学习,或者直接从3.4开始。另外,百度出来的中文资料,请查看15年及以后的信息,可以少走很多弯路。另外,建议使用linux系统进行学习,方便排错。
英文比较好的小伙伴:
如果英语不好,建议先花时间学英语
1. 强烈推荐MongoDB官方的教程,MongoDB在线大学,无论开发还是DBA,都可以找到适合自己的视频教程。因为视频有英语字幕,听不懂的同学,多多暂停,看一下字幕都能理解。
每节课结束都有相应的作业,可以自己用来练手。而且作业都会有类似一键脚本的东西,帮你配置好需要的实验环境。完成作业后,会有不少成就感,让自己可以有学下去的动力。另外,每次作业和最后的考试都通过会有一张结业证书。
最后,MongoDB官方的新员工也是从这里开始学习的,而且课程更新频率也很高。
2. MongoDB的官方文档,文档地址,选择自己想要看到章节,文档的内容写的很详细,而且有的地方直接提供web shell的环境,让你实际操作。
3. MongoDB工程师网站,网站地址,这里可以深入看到一些MongoDB原理的内容。此外也推荐看percona公司关于MongoDB的一些博文
看到英语就头疼的小伙伴:
暂时没找到较好的基础视频教程,IT大咖说上面有MongoDB使用案例的视频,可以一看,不过不适合初学,需要有一定的基础。
1. 先从看书开始,强烈推荐《MongoDB实战 第二版》,因为这本书是3.x版本的,相对来说内容比较新。然后《MongoDB权威指南 第二版》,这本内容蛮多的,不过已经过时了。《MongoDB应用设计模式》关于MongoDB设计适用的书,非常短,值得一看。
2. MongoDB中文社区有部分官方文档的翻译。
3. MongoDB中文社区的公众号及博客,云栖社区MongoDB板块
mongodb使用场景
Mongodb是最近流行的NOsql数据库,但一直对其用在什么场景合适而不清楚。主要知道这个数据库是快速开发很合适。但一直归属到大数据板块,想要咨询下Mongodb适用的场景有哪些?在大数据板块充当什么角色哪?
常见应用场景:
1. 最近单的入手就是存log,因为mongodb本身存的就是json,可以很方便的接入各种存储日志的地方。然后可以做成相关监控报表,比如说APM,NPM等,比如说千寻位置
2. 其他的话要看题主所在的行业了,不同的行业有不同的用法,比如说信息的展示等等
3. 在网游界,MongoDB也非常流行,比如说最近大火的阴阳师,数据库用的就是MongoDB
大数据方面,MongoDB有以下三个优势:
1. 自带sharding,快速得水平扩展,为存储海量数据带来便捷
2. 官方提供驱动,可以直接对接hadoop或者spark
客户场景
1、用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。
2、在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大得减少开发的工作。
3、主要用来存储一些监控数据,No schema 对开发人员来说,真的很方便,增加字段不用改表结构,而且学习成本极低。
4、使用MongoDB做了O2O快递应用,·将送快递骑手、快递商家的信息(包含位置信息)存储在 MongoDB,然后通过 MongoDB 的地理位置查询,这样很方便的实现了查找附近的商家、骑手等功能
特性及优势
william hill官网
从目前 阿里云MongoDB云数据库 上的用户看,MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例。
游戏场景:使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
物流场景:使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
社交场景:使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
物联网场景:使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
视频直播:使用 MongoDB 存储用户信息、礼物信息等
如果你还在为是否应该使用 MongoDB,不如来做几个选择题来辅助决策:
目前云数据库 MongoDB 版:支持三节点副本集容灾切换、自动备份、一键式的数据恢复。支持弹性扩容、提供资源监控
评论
查看更多