MongoDB官網:
https://www.mongodb.org
官網的下載頁面:
https://www.mongodb.org/downloads
官方文檔關鍵詞索引頁面:點擊這里隆圆。
MongoDB中文社區(qū):
http://www.mongoing.com
mongodb基礎知識
數(shù)據(jù)庫名可以是滿足以下條件的任意UTF-8字符串:
- 不能是空字符串( "" )壕吹。
- 不得含有
空格
、.
分扎、$
弧腥、/
驻龟、\\
和\\0
(空字符)看杭。 - 應盡量全部小寫慨绳,因為數(shù)據(jù)庫名并不區(qū)分大小寫。
- 不能為空被环,且少于64個字符雄卷。
- 在windows下最好別用
/\. "$*<>:|?
中的任何一個,更不允許包含null蛤售。 - 在類unix的系統(tǒng)下最好別用
/\. "$
,當然也包括null。
有一些數(shù)據(jù)庫名是保留的悴能,可以直接訪問這些有特殊作用的數(shù)據(jù)庫揣钦。
- admin: 從權限的角度來看,這是"root"數(shù)據(jù)庫漠酿。要是將一個用戶添加到這個數(shù)據(jù)庫冯凹,這個用戶自動繼承所有數(shù)據(jù)庫的權限。一些特定的服務器端命令也只能從這個數(shù)據(jù)庫運行炒嘲,比如列出所有的數(shù)據(jù)庫或者關閉服務器宇姚。
- local:這個數(shù)據(jù)永遠不會被復制,可以用來存儲限于本地單臺服務器的任意集合
- config:當Mongo用于分片設置時夫凸,config數(shù)據(jù)庫在內部使用浑劳,用于保存分片的相關信息。
集合名必須以下劃線或字母開頭夭拌,且禁止:
- 包含
$
魔熏。 - 包含空字符串,即""鸽扁。
- 包含
null
字符蒜绽。 - 以
system.
前綴開頭(系統(tǒng)保留使用)
域名field不允許包含
.
或null字符,而且不能以美元符號$
開頭
關于operator桶现,點擊MongoDB(operator)
關于集合的操作躲雅,點擊MongoDB(operation)
關于MongoDB的引擎,點擊MongoDB(引擎)
關于索引部分骡和,點擊MongoDB(index)
關于聚合部分相赁,點擊MongoDB(聚合)
差不多上手了之后,一些存在的細節(jié)問題只能在實際操作中發(fā)現(xiàn)即横≡肷可以選pymongo來實操了,基本的入門大概是這樣的:pymongo日記
收集來的關于MongoDB的優(yōu)劣的討論:
收集文章
淺析MongoDB數(shù)據(jù)庫的海量數(shù)據(jù)存儲應用
MongoDB的主要特點
(1)文件存儲格式為Bson
东囚,使用易于掌握和理解的Json風格語法跺嗽。相對Json來說,Bson擁有更好的性能页藻,主要表現(xiàn)為更快的遍歷速度桨嫁、操作更簡易、增加了額外的數(shù)據(jù)類型份帐。
(2)模式自由璃吧,支持嵌入子文檔和數(shù)組,無需事先創(chuàng)建數(shù)據(jù)結構废境,屬于逆規(guī)范化的數(shù)據(jù)模型畜挨,有利于提高查詢速度筒繁。
(3)動態(tài)查詢,支持豐富的查詢表達式巴元,使用Json形式的標記毡咏,可輕易查詢文檔中內嵌的對象和數(shù)組及子文檔。
(4)完整的索引支持逮刨,包括文檔內嵌對象和數(shù)據(jù)呕缭,同時還提供了全文索引方式,MongoDB的查詢優(yōu)化器會分析查詢表達式修己,并生成一個高效的查詢計劃恢总。
(5)使用高效的二進制數(shù)據(jù)存儲,適合存儲大型對象(如高清圖片睬愤、視頻等)片仿。
(6)支持多種復制模式,提供冗余及自動故障轉移戴涝。支持Master-Slave滋戳、Replica Pairs/Replica Sets、有限Master-Master模式啥刻。
(7)支持服務端腳本和Map/Reduce奸鸯,可以實現(xiàn)海量數(shù)據(jù)計算,即實現(xiàn)云計算功能可帽。(8)性能高娄涩、速度快。在多數(shù)場合映跟,其查詢速度對于MySQL要快的多蓄拣,對于CPU占用非常小。部署很簡單努隙,幾乎是零配置球恤。
(9)自動處理碎片,支持自動分片功能實現(xiàn)水平擴展的數(shù)據(jù)庫集群荸镊,可以動態(tài)添加或移除節(jié)點咽斧。
(10)內置GridFS,支持海量存儲躬存。
(11)可通過網絡訪問张惹,采用高效的MongoDB網絡協(xié)議,在性能方面要優(yōu)于http或Rest協(xié)議岭洲。
(12)第三方支持豐富宛逗,MongoDB社區(qū)活躍,越來越多的公司和網站在生產環(huán)境中使用MongoDB進行技術架構優(yōu)化盾剩,同時由10gen公司官方提供強大技術支持雷激。
MongoDB的適用場景
MongoDB的主要目標是在鍵/值存儲方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁替蔬,集兩者的優(yōu)勢于一身。
(1)網站數(shù)據(jù):MongoDB非常適合實時的插入屎暇,更新與查詢进栽,并具備網站實時數(shù)據(jù)存儲所需的復制及高度伸縮性。
(2)緩存:由于性能很高恭垦,MongoDB也適合作為信息基礎設施的緩存層。在系統(tǒng)重啟之后格嗅,由MongoDB搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載番挺。
(3)大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴屯掖,在此之前玄柏,很多時候程序員往往會選擇傳統(tǒng)的文件進行存儲。
(4)高伸縮性的場景:MongoDB非常適合由數(shù)十或數(shù)百臺服務器組成的數(shù)據(jù)庫贴铜。MongoDB的路線圖中已經包含對MapReduce引擎的內置支持粪摘。
(5)用于對象及JSON數(shù)據(jù)的存儲:MongoDB的Bson數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。