Mongo入门(一)
前提:
最近做项目,数据库用的是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入门(一)相关推荐
- 逆向爬虫14 Mongo入门
逆向爬虫14 Mongo入门 一.MongoDB和MySQL的区别 MongoDB 是一种 非关系型数据库,存放任意形式的 json 格式数据:而 MySQL 是一种 关系型数据库,只能存放事先定义好 ...
- MONGO入门(Mongo,maven)
mongo入门 一.MongoDB相关概念 1.1 业务应用场景 二.mongo的基本操作 2.1数据库的创建 2.2 查看当前数据库 2.3数据库的增删改查 2.3.1mongo的删除数据库的操作: ...
- Mongo学习---mongo入门1
Docker安装以及设置mongo用户 docker pull mongo (拉取镜像 默认最新版本) docker images (查看镜像) docker run -p 27017:27017 - ...
- Java mongo入门
2019独角兽企业重金招聘Python工程师标准>>> 参考 http://api.mongodb.com/java/3.2/ http://www.runoob.com/mongo ...
- Mongo入门-2-基本操作
创建数据库 use + 数据库名称 use会创建一个数据库,如果这个数据库存在,那么返回这个数据库 示例 创建一个数据库skdb use skdb 使用db命令查看当前选定的数据库 db 使用show ...
- 操作方法:具有多个Mongo存储库和Kotlin的Spring Boot 2 Web应用程序
首先,免责声明:如果您正在编写微服务 (每个人现在都对吗?)并希望它是惯用的 ,那么通常不会在其中使用几个不同的数据源. 图片取自Pixabay© https: //pixabay.com/illus ...
- PyMongo--非关系型数据库mongodb入门(一步一步 版)
PyMongo--非关系型数据库mongodb入门(一步一步 版) 本文主要内容: 1.简要介绍mongodb 2.Pymongo 3.mongo shell 4.我的mongodb入门之旅 1.简要 ...
- mongodb不等于某个值_MongoDB的安装以及基本增删改查命令
MongoDB 介绍 mongodb 和大多数NoSQL 数据库(redis,memcached 等)一样,都是以 kv数据库(key/value) 存储数据 不同的是mongodb 文档数据库,存储 ...
- mongodb学习笔记之增删改查作指令
1: mongo入门命令 1.1: show dbs 查看当前的数据库 1.2 use databaseName 选库 1.2 show tables/collections 查看当前库下的coll ...
最新文章
- 2019年黑龙江省计算机等级考试,2019年的下半年黑龙江省计算机等级考试报名工作即将开始...
- VC++学习(17):进程间通信
- 剑指offer二:字符串中的空格替换
- 阿里云CDN技术 揭秘
- PHP中error_reporting()详解
- 修改hosts 流畅使用coursera
- java执行指定目录的class文件
- java同步调用rabbitmq,使用RabbitMQ可以放慢同步发布/消耗速度
- 麒麟ARM版:不能使用U盘安装,只能使用光盘
- Introduction to Computer Networking学习笔记(七):ICMP协议
- php仿it之家源码,织梦仿IT之家带wap手机版 v5.7
- delphi控件切图界面闪烁_ui界面切图方法
- 数据分析之数据质量分析
- Windows10系统迁移-同一PC硬盘之间
- 阿里研究员玄难:如何做电商业务中台
- curl 请求日志_CURL常用命令
- 通过 scrapy 爬取豆果美食热门数据, 使用 flask 搭建后端, 最后搭建一个简单的小程序
- Paddle进阶实战系列(二):智慧交通预测系统
- R语言使用pcauchy函数生成柯西分布累积分布函数数据、使用plot函数可视化柯西分布累积分布函数数据(Cauchy distribution)
- stratch pragramming