前提:

最近做项目,数据库用的是mongodb。之前没接触过。因此从零开始学习一下。

一:为什么要用mongo

1.MongoDB与MySQL的区别

2.MongoDB适用于什么场景

MongoDB 的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS 系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。根据官方网站的描述,Mongo 适用于以下场景。

● 网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
● 缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo 搭建的持久化缓存层可以避免下层的数据源过载。
● 大尺寸、低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
● 高伸缩性的场景:Mongo 非常适合由数十或数百台服务器组成的数据库,Mongo 的路线图中已经包含对MapReduce 引擎的内置支持。
● 用于对象及JSON 数据的存储:Mongo 的BSON 数据格式非常适合文档化格式的存储及查询。

当公司数据模型无法具体确定,后期明确要进行扩展时,且表与表之间不需要进行JOIN操作,可以使用mongodb数据库。

从网上看到下面这个表格

应用特征 Yes/No?
我的数据量是有亿万级或者需要不断扩容  
需要2000-3000以上的读写每秒  
新应用,需求会变,数据模型无法确定  
我需要整合多个外部数据源  
我的系统需要99.999%高可用  
我的系统需要大量的地理位置查询  
我的系统需要提供最小的latency  
我要管理的主要数据对象<10  

3.MongoDB与NoSql的区别

类型 例子 典型应用场景 数据模型 优点 缺点

key-value存储

Redis 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统 key-value 查找数据速度快 数据没有结构化。
列存储数据库 Hbase 分布式的文件系统 以列簇族形式存储,将同一列数据存放在一起 查找速度快,可扩展性强,更容易进行分布式扩展。 功能相对局限
文档型数据库 MongoDB Web应用 key-value 数据结构要求不严格,表结构可变,易于扩展 查询性能不高,缺乏统一的查询语法
图存储数据库 Neo4J 社交网络,关系图谱 图结构 利用图相关算法 很多时候,需要对整个图进行计算才能获取需要的信息。

4.MongoDB概念解析

SQL术语 MongoDB术语 解释
database database 数据库
table collection
row document
column field 数据字段
index index

索引

table join   表连接,MongoDB不支持
primary key primary key 主键。MongoDB自动将_Id字段设置为主键

Mongo入门(一)相关推荐

  1. 逆向爬虫14 Mongo入门

    逆向爬虫14 Mongo入门 一.MongoDB和MySQL的区别 MongoDB 是一种 非关系型数据库,存放任意形式的 json 格式数据:而 MySQL 是一种 关系型数据库,只能存放事先定义好 ...

  2. MONGO入门(Mongo,maven)

    mongo入门 一.MongoDB相关概念 1.1 业务应用场景 二.mongo的基本操作 2.1数据库的创建 2.2 查看当前数据库 2.3数据库的增删改查 2.3.1mongo的删除数据库的操作: ...

  3. Mongo学习---mongo入门1

    Docker安装以及设置mongo用户 docker pull mongo (拉取镜像 默认最新版本) docker images (查看镜像) docker run -p 27017:27017 - ...

  4. Java mongo入门

    2019独角兽企业重金招聘Python工程师标准>>> 参考 http://api.mongodb.com/java/3.2/ http://www.runoob.com/mongo ...

  5. Mongo入门-2-基本操作

    创建数据库 use + 数据库名称 use会创建一个数据库,如果这个数据库存在,那么返回这个数据库 示例 创建一个数据库skdb use skdb 使用db命令查看当前选定的数据库 db 使用show ...

  6. 操作方法:具有多个Mongo存储库和Kotlin的Spring Boot 2 Web应用程序

    首先,免责声明:如果您正在编写微服务 (每个人现在都对吗?)并希望它是惯用的 ,那么通常不会在其中使用几个不同的数据源. 图片取自Pixabay© https: //pixabay.com/illus ...

  7. PyMongo--非关系型数据库mongodb入门(一步一步 版)

    PyMongo--非关系型数据库mongodb入门(一步一步 版) 本文主要内容: 1.简要介绍mongodb 2.Pymongo 3.mongo shell 4.我的mongodb入门之旅 1.简要 ...

  8. mongodb不等于某个值_MongoDB的安装以及基本增删改查命令

    MongoDB 介绍 mongodb 和大多数NoSQL 数据库(redis,memcached 等)一样,都是以 kv数据库(key/value) 存储数据 不同的是mongodb 文档数据库,存储 ...

  9. mongodb学习笔记之增删改查作指令

    1: mongo入门命令 1.1: show dbs  查看当前的数据库 1.2 use databaseName 选库 1.2 show tables/collections 查看当前库下的coll ...

最新文章

  1. 2019年黑龙江省计算机等级考试,2019年的下半年黑龙江省计算机等级考试报名工作即将开始...
  2. VC++学习(17):进程间通信
  3. 剑指offer二:字符串中的空格替换
  4. 阿里云CDN技术 揭秘
  5. PHP中error_reporting()详解
  6. 修改hosts 流畅使用coursera
  7. java执行指定目录的class文件
  8. java同步调用rabbitmq,使用RabbitMQ可以放慢同步发布/消耗速度
  9. 麒麟ARM版:不能使用U盘安装,只能使用光盘
  10. Introduction to Computer Networking学习笔记(七):ICMP协议
  11. php仿it之家源码,织梦仿IT之家带wap手机版 v5.7
  12. delphi控件切图界面闪烁_ui界面切图方法
  13. 数据分析之数据质量分析
  14. Windows10系统迁移-同一PC硬盘之间
  15. 阿里研究员玄难:如何做电商业务中台
  16. curl 请求日志_CURL常用命令
  17. 通过 scrapy 爬取豆果美食热门数据, 使用 flask 搭建后端, 最后搭建一个简单的小程序
  18. Paddle进阶实战系列(二):智慧交通预测系统
  19. R语言使用pcauchy函数生成柯西分布累积分布函数数据、使用plot函数可视化柯西分布累积分布函数数据(Cauchy distribution)
  20. stratch pragramming

热门文章

  1. 终身学习“八大关键能力
  2. Kaggle-泰坦尼克号项目 | 小白修炼之路的开始
  3. 成为一个合格的Linux用户(四)
  4. 软文发布怎么选择好的媒体发布平台?
  5. 【结构光三维重建】基于格雷码的相位展开方法(含代码)
  6. 再谈winform无边框窗体的鼠标托动与缩放
  7. 一个类的例子--员工工资
  8. 宁浩网 php,宁浩来了,最懂年轻人的宁浩来了
  9. 智能电器控制板EMC仿真与优化
  10. deb 安装_Ubuntu下安装软件的几种方法