MongoDB 概述

MongoDB 概述

MongoDB是一个跨平台、面向文档的数据库,提供高性能、高可用性和易扩展性。 MongoDB基于集合和文档的概念进行操作。

数据库

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

集合

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

文档

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

以下表格显示了RDBMS术语与MongoDB之间的关系。

关系型数据库管理系统(RDBMS) MongoDB
数据库(Database) 数据库(Database)
表(Table) 集合(Collection)
元组/行(Tuple/Row) 文档(Document)
列(Column) 字段(Field)
表连接(Table Join) 嵌入式文档(Embedded Documents)
主键(Primary Key) 主键(默认键_id由MongoDB自身提供)

数据库服务器和客户端

RDBMS MongoDB
mysqld/Oracle mongod
mysql/sqlplus mongo

示例文档

以下示例展示了博客站点的文档结构,它只是一个逗号分隔的键值对。

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.tutorialspoint.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个字节是简单的递增值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程