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 | Primary Key (Default key _id provided by mongodb itself) |
數據庫服務器和客戶端 | |
Mysqld/Oracle | mongod |
mysql/sqlplus | mongo |
示例文檔
下麵給出的示例顯示了一個博客網站,這簡直是一個逗號分隔的鍵值對文檔結構。
{ _id: ObjectId(7df78ad8902c) title: 'MongoDB Overview', description: 'MongoDB is no sql database', by: 'tutorials yiibai', url: 'http://www.gitbook.net', 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個字節的進程id MongoDB的服務器及剩餘3個字節是簡單的增量值。