MongoDB筆記

MongoDB官網(wǎng):
https://www.mongodb.org
官網(wǎng)的下載頁面:
https://www.mongodb.org/downloads
官方文檔關(guān)鍵詞索引頁面:點擊這里
MongoDB中文社區(qū):
http://www.mongoing.com


mongodb基礎(chǔ)知識

數(shù)據(jù)庫名可以是滿足以下條件的任意UTF-8字符串:

  • 不能是空字符串( "" )。
  • 不得含有 空格.$/\\\\0 (空字符)。
  • 應(yīng)盡量全部小寫,因為數(shù)據(jù)庫名并不區(qū)分大小寫。
  • 不能為空,且少于64個字符。
  • 在windows下最好別用/\. "$*<>:|?中的任何一個,更不允許包含null。
  • 在類unix的系統(tǒng)下最好別用/\. "$,當(dāng)然也包括null。

有一些數(shù)據(jù)庫名是保留的,可以直接訪問這些有特殊作用的數(shù)據(jù)庫。

  • admin: 從權(quán)限的角度來看,這是"root"數(shù)據(jù)庫。要是將一個用戶添加到這個數(shù)據(jù)庫,這個用戶自動繼承所有數(shù)據(jù)庫的權(quán)限。一些特定的服務(wù)器端命令也只能從這個數(shù)據(jù)庫運行,比如列出所有的數(shù)據(jù)庫或者關(guān)閉服務(wù)器。
  • local:這個數(shù)據(jù)永遠(yuǎn)不會被復(fù)制,可以用來存儲限于本地單臺服務(wù)器的任意集合
  • config:當(dāng)Mongo用于分片設(shè)置時,config數(shù)據(jù)庫在內(nèi)部使用,用于保存分片的相關(guān)信息。

集合名必須以下劃線或字母開頭,且禁止:

  • 包含$
  • 包含空字符串,即""。
  • 包含null字符。
  • system.前綴開頭(系統(tǒng)保留使用)

域名field不允許包含.或null字符,而且不能以美元符號$開頭


關(guān)于operator,點擊MongoDB(operator)
關(guān)于集合的操作,點擊MongoDB(operation)
關(guān)于MongoDB的引擎,點擊MongoDB(引擎)
關(guān)于索引部分,點擊MongoDB(index)
關(guān)于聚合部分,點擊MongoDB(聚合)

差不多上手了之后,一些存在的細(xì)節(jié)問題只能在實際操作中發(fā)現(xiàn)。可以選pymongo來實操了,基本的入門大概是這樣的:pymongo日記


收集來的關(guān)于MongoDB的優(yōu)劣的討論:

收集文章

淺析MongoDB數(shù)據(jù)庫的海量數(shù)據(jù)存儲應(yīng)用

MongoDB的主要特點

(1)文件存儲格式為Bson,使用易于掌握和理解的Json風(fēng)格語法。相對Json來說,Bson擁有更好的性能,主要表現(xiàn)為更快的遍歷速度、操作更簡易、增加了額外的數(shù)據(jù)類型。
(2)模式自由,支持嵌入子文檔和數(shù)組,無需事先創(chuàng)建數(shù)據(jù)結(jié)構(gòu),屬于逆規(guī)范化的數(shù)據(jù)模型,有利于提高查詢速度。
(3)動態(tài)查詢,支持豐富的查詢表達(dá)式,使用Json形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對象和數(shù)組及子文檔。
(4)完整的索引支持,包括文檔內(nèi)嵌對象和數(shù)據(jù),同時還提供了全文索引方式,MongoDB的查詢優(yōu)化器會分析查詢表達(dá)式,并生成一個高效的查詢計劃。
(5)使用高效的二進(jìn)制數(shù)據(jù)存儲,適合存儲大型對象(如高清圖片、視頻等)。
(6)支持多種復(fù)制模式,提供冗余及自動故障轉(zhuǎn)移。支持Master-Slave、Replica Pairs/Replica Sets、有限Master-Master模式。
(7)支持服務(wù)端腳本和Map/Reduce,可以實現(xiàn)海量數(shù)據(jù)計算,即實現(xiàn)云計算功能。(8)性能高、速度快。在多數(shù)場合,其查詢速度對于MySQL要快的多,對于CPU占用非常小。部署很簡單,幾乎是零配置。
(9)自動處理碎片,支持自動分片功能實現(xiàn)水平擴(kuò)展的數(shù)據(jù)庫集群,可以動態(tài)添加或移除節(jié)點。
(10)內(nèi)置GridFS,支持海量存儲。
(11)可通過網(wǎng)絡(luò)訪問,采用高效的MongoDB網(wǎng)絡(luò)協(xié)議,在性能方面要優(yōu)于http或Rest協(xié)議。
(12)第三方支持豐富,MongoDB社區(qū)活躍,越來越多的公司和網(wǎng)站在生產(chǎn)環(huán)境中使用MongoDB進(jìn)行技術(shù)架構(gòu)優(yōu)化,同時由10gen公司官方提供強大技術(shù)支持。

MongoDB的適用場景

MongoDB的主要目標(biāo)是在鍵/值存儲方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁,集兩者的優(yōu)勢于一身。
(1)網(wǎng)站數(shù)據(jù):MongoDB非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。
(2)緩存:由于性能很高,MongoDB也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由MongoDB搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
(3)大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進(jìn)行存儲。
(4)高伸縮性的場景:MongoDB非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫。MongoDB的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持。
(5)用于對象及JSON數(shù)據(jù)的存儲:MongoDB的Bson數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。


未完待續(xù)。。。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 這里是閱讀了《MongoDB權(quán)威指南》后做的相關(guān)筆記。 一、文檔 文檔是MongoDB的核心概念。文檔就是鍵值對的...
    yjaal閱讀 673評論 0 4
  • Mongodb 配置選項 通常在mongod.conf中 配置文件 設(shè)置了配置文件后啟動時以自定義的配置文件啟動:...
    AkaTBS閱讀 1,097評論 0 6
  • 以下無權(quán)限的命令請使用sudo,或在root下操作 一、安裝mongodb 1. 創(chuàng)建yum源文件: 2. 寫入源...
    天一生水_AL閱讀 699評論 0 3
  • 一、插入并保存文檔 可以使用insert方法向目標(biāo)集合插入一個文檔: 這個操作會給文檔自動增加一個"_id"鍵(要...
    yjaal閱讀 681評論 0 0
  • 今天孩子學(xué)校報名了,美麗美好的校園,年輕的孩子們象清新的風(fēng),明亮干凈,生氣勃勃,有一種很感染人的氣息能量。 我看著...
    何偀閱讀 144評論 0 0