前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三分钟 mongodb 开发快速上手

三分钟 mongodb 开发快速上手

作者头像
机智的程序员小熊
发布2020-04-23 17:24:42
4510
发布2020-04-23 17:24:42
举报
文章被收录于专栏:技术面面观技术面面观

三分钟 mongodb 开发快速上手

小熊昨天晚上做了一个非常真实的噩梦,有读者朋友催我”怎么又没有发文!让我们等的好辛苦“,今天一睁开眼眼看后台留言,特么,居然是真的!

bilibili直播申请都通过了!但是别想让我吃粑粑!

这两天我虽然没有更新文章,主要因为小熊最近的工作密度比较大,有时候为了能够偷懒花一些时间主动写一些脚本或者代码,减少很多人力的操作,这种事情没有人要求小熊,但是我还是会主动去,长痛不如短痛就是这个道理。

工作之余我可没有闲着,今天要和大家分享的是来自一位读者的要求,他们小组马上要用mongodb了,但是以前从来没有接触过,小熊就满足你的需求。

有道是,无巧不成书,我们也用到了mongdb,不过对于小熊个人来说,对mongodb的接触仅限于维护的时候看看表结构,更新几行记录什么的,正好逮到这个契机下决心好好总结一下。

这是一篇科普文。

为什么用(有在哪,有什么好处) ?

我们用 mongodb 比较感兴趣的是为什么要用他?他有什么好处?什么时候该用?具体怎么用?

mongo 相对于传统的关系型数据库,例如MySQL来说,他对每一次插入的字段格式没有要求,字段可以随意变动。

像这张图,各种类型的字段都存在里面。看上去和Mysql长的很像,但是他是去sql的一种数据库。就是我们常说的nosql

MongoDB 的优点/缺点

MongoDB 的优势主要有 3 个。

  • 结构灵活,表结构更改比较自由,不用因为增减字段每次 alter 的时候付出代价,适合业务快速迭代,而且 json 原生和大多数的语言有天然的契合。还支持数组,嵌套文档等数据类型
  • 自带高可用,自动主从切换(副本集)
  • 自带水平分片(分片),内置了路由,配置管理。应用只要连接路由,对应用来说是透明的。

也具备所有NoSQL的其他优点。

  • 他可以并发插入上万条文档
  • 高可扩展性,在负载高的情况下,只需要添加更多的节点,就可以保证服务器的性能。
  • 分布式计算
  • 低成本,轻量化部署非常简单
  • 没有复杂的关系

缺点:

  • 没有标准化
  • 程序不直观

主要记得灵活、好用、速度快、容器扩展运维方便就好了,不像MySQL那样,对集群同步要求那么高。

基本概念

mongodb 中基本的概念是文档、集合、数据库,让我由外而内和大家聊聊。

MySQL对比来看就是

  • 数据库——>数据库
  • 表————>集合
  • 行————>文档
  • 列 ————>字段
数据库(db)?

MySQL一样,一个 mongodb 中可以建立多个数据库。

展示所有的数据库

代码语言:javascript
复制
> show dbs
local  0.078GB
test   0.078GB

运行use命令,可以连接到一个指定的数据库(没有则创建)。

代码语言:javascript
复制
> use coding3min
switched to db coding3min

执行 db 命令可以显示当前数据库对象或集合。

代码语言:javascript
复制
> db
coding3min
文档(Document)?

说集合之前,要先说说集合里所有的行记录,也就是文档,类似MySQL表中一行一行的记录。

文档是个什么东西呢?他长的就像 JSON 对象。

数据结构由键值 (key=>value) 对组成。字段值可以包含其他文档,数组及文档数组,简直和json一毛一样。

点击放大查看图片

集合(collection)?

集合类似MySQL中的表,就是文档的集合。

代码语言:javascript
复制
db.createCollection("coding3min", {happy:true, age:18})

查看当然库有哪些集合

代码语言:javascript
复制
> show collections
coding3min

其实你不用刻意创建集合。在插入文档的时候,会自动创建。

这就是Mongo的简单入门啦,我们先讲应用,以后有机会再聊聊业务怎么设计,怎么真正的用起来,系统的讲讲有哪些比较重要的点。下次再见啦。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机智的程序员小熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三分钟 mongodb 开发快速上手
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档