跳至主要內容

Mongo-介绍

Zenghr大约 3 分钟

Mongo 介绍

MongoDB 是一个可扩展、高性能的 NoSQL 数据库,由 C++ 语言编写,旨在为 web 应用提供高性能可扩展的数据存储解决方案。
它的特点是高性能、易部署、易使用,存储数据非常方便,主要特性有:

  • 模式自由,支持动态查询、完全索引,可轻易查询文档中内嵌的对象及数组。
  • 面向集合存储,易存储对象类型的数据 , 包括文档内嵌对象及数组。
  • 高效的数据存储 , 支持二进制数据及大型对象 ( 如照片和视频 )。
  • 支持复制和故障恢复;提供了 主-从、主-主模式的数据复制及服务器之间的数据复制。
  • 自动分片以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器

Mongo 的基本概念

  • 文档(document) - 是 mongo 中的基本数据单元,类似于关系型数据库中的行,但是比行要复杂的多
  • 集合 - 就是一组文档,如果说文档就是行那么集合就类似关系型数据库中的表
  • 数据库 - Mongo 中多个文档组成集合,同样的多个集合组成数据库,每个数据库都有独立的权限控制

MongoDB与RDBMS区别

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary 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正则表达式类型。用于存储正则表达式。