MongoDB - 概述

MongoDB是一个跨平台,面向文档的数据库,提供高性能,高可用性和易扩展性. MongoDB适用于集合和文档的概念.

数据库

数据库是集合的物理容器.每个数据库都在文件系统上获得自己的一组文件.单个MongoDB服务器通常有多个数据库.

集合

集合是一组MongoDB文档.它相当于RDBMS表.集合存在于单个数据库中.集合不强制执行架构.集合中的文档可以具有不同的字段.通常,集合中的所有文档都具有相似或相关的目的.

文档

文档是一组键值对.文档具有动态模式.动态模式意味着同一集合中的文档不需要具有相同的字段或结构集,集合文档中的公共字段可能包含不同类型的数据.

下表显示了RDBMS术语与MongoDB的关系.

RDBMSMongoDB
数据库数据库
集合
元组/行文件
字段
表格连接嵌入文件
主键主要键(默认键_id由mongodb本身提供)
数据库服务器和客户端
Mysqld/Oraclemongod
mysql/sqlplusmongo

示例文档

以下示例显示了博客站点的文档结构,它只是一个逗号分隔符额定键值对.

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.it1352.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_id 是一个12字节的十六进制数字,可确保每个文档的唯一性.您可以在插入文档时提供_id.如果您不提供,那么MongoDB为每个文档提供唯一的ID.这12个字节前4个字节用于当前时间戳,接下来3个字节用于机器ID,接下来2个字节用于MongoDB服务器的进程ID,剩余3个字节是简单的增量值.