1. 程式人生 > >MongoDB簡介.md

MongoDB簡介.md


  • MongoDB是一個NoSQL資料庫,是NoSQL中的一個分支:文件資料庫。和傳統的關係型資料庫比如Oracle、SQLServer和MySQL等有很大的不同。傳統的關係型資料庫(RDBMS)已經成為資料庫的代名詞超過20多年了。對於大多數開發者來說,關係型資料庫是比較好理解的,表這種結構和SQL這種標準化查詢語言畢竟是很大一部分開發者已有的技能。
  • 一般來說,如果你在做一個Web、物聯網等型別的專案,你應該考慮使用NoSQL。如果你要面對的是一個對資料的完整性、事務處理等有嚴格要求的環境(比如財務系統),你應該考慮關係型資料庫。
  • 傳統的關係資料庫一般由資料庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由資料庫(database)、集合(collection)、文件物件(document)三個層次組成。MongoDB對於關係型資料庫裡的表,但是集合中沒有列、行和關係概念,這體現了模式自由的特點。
  • Mongo最大的特點是他支援的查詢語言非常強大,其語法有點類似於面向物件的查詢語言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
  • MongoDB的適合對大量或者無固定格式的資料進行儲存,比如:日誌、快取等。對事物支援較弱,不適用複雜的多文件(多表)的級聯查詢。
  • MongoDB中的一條記錄就是一個文件,是一個數據結構,由欄位和值對組成。MongoDB文件與JSON物件類似。欄位的值有可能包括其它文件、陣列以及文件陣列。