MongoDB的体系结构
一、简单介绍
- MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计的目标就是用于简化开发和方便扩展,它是是最像关系型数据库的非关系型数据库。
- MongoDB支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
- MongoDB中的记录是一个文档,它是一个由字段和值对(field : value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组等。
二、体系结构
- 概述
如下图所示一个MongoDB实例,由多个数据库(Database)组成;一个数据库,由多个集合(Collection)组成;一个集合,又由多个文档组成! - 以Oracle关系型数据库为对比对象,来讲一下上面这些概念的意思。
-
实例
MongoDB实例和Oracle实例是一样的东西,由各种高速缓冲池以及后台进程组成,负责维护和访问数据库数据。 -
数据库Database
MongoDB的数据库和Oracle的数据库也是差不多的概念,一个实例可以承载多个数据库。
需要注意的是:
(1)不同的数据库拥有独立的权限,即使在磁盘上,不同数据库也放在不同的文件中。
(2)MongoDB中有三个特殊的数据库:admin(可以看做“root”数据库)、local(本地数据库,永远都不可以复制,且一台服务器上的所有本地集合都可以放在这个数据库中)、config(用于分片设置,保存分片信息)。 -
集合Collection
集合可以看做是Oracle中的表,不同的是 Oracle 中的表存放的是表数据,但Collection存放的是文档。
需要注意的是:集合是“动态模式”的,对于文档的格式没有要求,所以十分自由。甚至可以将所有文档放到一个Collection里面,只是那样你可能见不到明天的太阳。 -
文档
MongoDB是一种面向文档的数据库,文档也是MongoDB中数据的基本单元,可以类比看作Oracle中的一行数据,那么到底什么是文档呢。
文档就是键值对的一个有序集!这样说你可能优点懵,但是说Json你可能就知道了。MongoDB中的文档是一种类似与Json的数据结构,叫作BSON。BSON这种数据结构十分灵活,可以适应很复杂多变的情况,这也正是MongoDB的魅力。