Mongo-介绍
大约 3 分钟
Mongo 介绍
MongoDB 是一个可扩展、高性能的 NoSQL 数据库,由 C++ 语言编写,旨在为 web 应用提供高性能可扩展的数据存储解决方案。
它的特点是高性能、易部署、易使用,存储数据非常方便,主要特性有:
- 模式自由,支持动态查询、完全索引,可轻易查询文档中内嵌的对象及数组。
- 面向集合存储,易存储对象类型的数据 , 包括文档内嵌对象及数组。
- 高效的数据存储 , 支持二进制数据及大型对象 ( 如照片和视频 )。
- 支持复制和故障恢复;提供了 主-从、主-主模式的数据复制及服务器之间的数据复制。
- 自动分片以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器
Mongo 的基本概念
- 文档(document) - 是 mongo 中的基本数据单元,类似于关系型数据库中的行,但是比行要复杂的多
- 集合 - 就是一组文档,如果说文档就是行那么集合就类似关系型数据库中的表
- 数据库 - Mongo 中多个文档组成集合,同样的多个集合组成数据库,每个数据库都有独立的权限控制
MongoDB与RDBMS区别
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
Mongo 的术语
_id – 这是每个MongoDB文档中必填的字段。_id字段表示MongoDB文档中的唯一值。_id字段类似于文档的主键。如果创建的新文档中没有_id字段,MongoDB将自动创建该字段。
集合 – 这是MongoDB文档的分组。集合等效于在任何其他RDMS(例如Oracle或MS SQL)中创建的表。集合存在于单个数据库中。从介绍中可以看出,集合不强制执行任何结构。
游标 – 这是指向查询结果集的指针。客户可以遍历游标以检索结果。
数据库 – 这是像RDMS中那样的集合容器,其中是表的容器。每个数据库在文件系统上都有其自己的文件集。MongoDB服务器可以存储多个数据库。
文档 - MongoDB集合中的记录基本上称为文档。文档包含字段名称和值。
字段 - 文档中的名称/值对。一个文档具有零个或多个字段。字段类似于关系数据库中的列。
Mongo 的数据类型
数据类型 | 描述 |
---|---|
String | 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。 |
Integer | 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。 |
Boolean | 布尔值。用于存储布尔值(真/假)。 |
Double | 双精度浮点值。用于存储浮点值。 |
Min/Max keys | 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。 |
Array | 用于将数组或列表或多个值存储为一个键。 |
Timestamp | 时间戳。记录文档修改或添加的具体时间。 |
Object | 用于内嵌文档。 |
Null | 用于创建空值。 |
Symbol | 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。 |
Date | 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 |
Object ID | 对象 ID。用于创建文档的 ID。 |
Binary Data | 二进制数据。用于存储二进制数据。 |
Code | 代码类型。用于在文档中存储 JavaScript 代码。 |
Regular expression | 正则表达式类型。用于存储正则表达式。 |