MongoDB 基础概述怎么入门?新手该怎么快速了解核心概念?

文章导读
Previous Quiz Next MongoDB 是一个跨平台的、面向文档的数据库,提供高性能、高可用性和易于扩展性。MongoDB 基于 collection 和 document 的概念工作。
📋 目录
  1. Database
  2. Collection
  3. Document
  4. Sample Document
A A

MongoDB - 概述



Previous
Quiz
Next

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

Database

Database 是 collection 的物理容器。每个 database 在文件系统上拥有自己的一组文件。一个单一的 MongoDB server 通常有多个 database。

Collection

Collection 是一组 MongoDB document。它相当于 RDBMS 中的 table。Collection 存在于单个 database 中。Collection 不强制执行 schema。Collection 中的 document 可以具有不同的字段。通常,Collection 中的所有 document 具有相似或相关的用途。

Document

Document 是一组键值对。Document 具有动态 schema。动态 schema 意味着同一 collection 中的 document 不需要具有相同的字段集或结构,且 collection 中 document 的常见字段可能持有不同类型的数据。

下表展示了 RDBMS 术语与 MongoDB 的对应关系。

RDBMS MongoDB
Database Database
Table Collection
Tuple/Row Document
column Field
Table Join Embedded Documents
Primary Key Primary Key (默认键 _id 由 MongoDB 自身提供)
Database Server and Client
mysqld/Oracle mongod
mysql/sqlplus mongo

Sample Document

以下示例展示了博客网站的 document 结构,它只是用逗号分隔的键值对。

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: '',
   url: 'https://www.example.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 字节的十六进制数字,确保每个 document 的唯一性。您可以在插入 document 时提供 _id。如果不提供,则 MongoDB 会为每个 document 提供一个唯一 id。这 12 字节的前 4 字节表示当前时间戳,接下来 3 字节表示 machine id,接下来 2 字节表示 MongoDB server 的 process id,剩余 3 字节是简单的递增值。