目录

1、MongoDB的优势

2、MongoDB的应用场合

 3、MongoDB与SQL的术语对比

 4、MongoDB数据库

 5、MongoDB集合

  5、MongoDB文档

 6、ObjectId类型的主键


1、MongoDB的优势

JSON文档模型

高可用

动态的数据模式

文本搜索

二级索引强大

企业级安全

查询功能

聚合框架MapReduce

自动分片

大文件存储GridFS

水平扩展

支持多种 编程语言

自动复制

2、MongoDB的应用场合

  1. 存储网站内容、缓存等大容量、低价值的数据

在高伸缩性的场景中用于对象及JSON数据的存储

mongoDB数据库怎么设计 mongodb数据表_nosql

SQL数据库4个表

mongoDB数据库怎么设计 mongodb数据表_数据库_02

MongoDB数据库1个集合

 3、MongoDB与SQL的术语对比

SQL术语

MongoDB术语

Database(数据库)

Database(数据库)

Table(表)

Collection(集合)

Row(行或记录)

Document或BSON Document(文档)

Column(列或字段)

Index(索引)

Table Joins(表联合)

Embedded Documents and Linking(嵌入文档和连接)

Primary Key(主键,将唯一列或列组合定义为主键)

Primary Key(主键,自动设置为_id字段)

Aggregation(聚合)

Aggregation Pipeline(聚合管道)

 4、MongoDB数据库

  •         一个MongoDB服务器可以建立多个独立的数据库,每个数据库都有自己的集合和权限,不同的数据库也放置在不同的文件中;
  •         MongoDB中默认的数据库为local。

 5、MongoDB集合

  •         集合类似于SQL数据库管理系统中的数据表,是一个MongoDB文档的集合;
  •         集合存在于数据库中,没有固定的结构;
  •         集合只在文档内容插入之后才会创建。

{"site":"www.jd.com"}

{"site":"www.taobao.com","name":"淘宝","hit":125}

{"site":"www.tmall.com","name":"天猫","purchases":23}

  5、MongoDB文档

  •         文档是一组键值对;
  •         与SQL数据库不同,MongoDB的文档不需要设置相同的字段;
  •         MongoDB文档中存储的是BSON格式的数据。
_id : ObjectId("5cdb7b5d7d422febd0es8f3e")
isbn: "9787115450326""
name:"网络操作系统(第2版)"
author : Array
    0:"陈景亮"
    1:"钟小平"
    2:"宋大勇"
press :"人民邮电出版社"
price: 69.80
pubdate : "2017-07-e1" 
comments : Array

_id : ObjectId("5cdb74a97d422febdees8f3d")
isbn: "9787111544937"
name:"深入理解计算机系统(原书第3版)"
author: Array
press:"机械工业出版社”
price: 139.00
pubdate : "2016-12-01"
comments : Array

_id : ObjectId("5cdb7f647d422febde088f3f"
isbn: "9787115483698"
name: "Centos Linux系统管理与运维(第2版)"
author: Array
press:"人民邮电出版社"
price: 69.80
pubdate: "2018-08-01"
comments: Array

SQL数据库表

mongoDB数据库怎么设计 mongodb数据表_nosql_03

 6、ObjectId类型的主键

  • MongoDB文档必须有一个名为_id的主键;
  • 主键的值可以是任何类型的,默认是一个ObjectId对象。MongoDB采用一个ObjectId类型的值作为主键;
  • ObjectId是12字节的BSON字符串,一个字节为两位十六进制数,共有24位十六进制数,其组成是固定格式,例如:5cdb7f647d422f0bd0088f3f
  • 4个字节表示当前的时间戳;
  • 3个字节代表所在主机唯一标识;
  • 2个字节表示进程ID;
  • 3个字节是一个自动生成的随机数。