MongoDB學(xué)習(xí)筆記(一) MongoDB介紹與安裝方法
一、前言
最近開(kāi)始學(xué)習(xí)非關(guān)系型數(shù)據(jù)庫(kù)MongoDB,卻在博客園上找不到比較系統(tǒng)的教程,很多資料都要去查閱英文網(wǎng)站,效率比較低下。本人不才,借著自學(xué)的機(jī)會(huì)把心得體會(huì)都記錄下來(lái),方便感興趣的童鞋分享討論。部分資源出自其他博客,旨將零散知識(shí)點(diǎn)集中到一起,如果有侵犯您的權(quán)利,請(qǐng)聯(lián)系li-pan2@163.com。大部分內(nèi)容均系原創(chuàng),歡迎大家轉(zhuǎn)載分享,但轉(zhuǎn)載的同時(shí)別忘了注明作者和原文鏈接哦。
二、MongoDB簡(jiǎn)介
MongoDB是一個(gè)高性能,開(kāi)源,無(wú)模式的文檔型數(shù)據(jù)庫(kù),是當(dāng)前NoSql數(shù)據(jù)庫(kù)中比較熱門的一種。它在許多場(chǎng)景下可用于替代傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)或鍵/值存儲(chǔ)方式。Mongo使用C++開(kāi)發(fā)。Mongo的官方網(wǎng)站地址是:http://www.mongodb.org/,讀者可以在此獲得更詳細(xì)的信息。
小插曲:什么是NoSql?
NoSql,全稱是 Not Only Sql,指的是非關(guān)系型的數(shù)據(jù)庫(kù)。下一代數(shù)據(jù)庫(kù)主要解決幾個(gè)要點(diǎn):非關(guān)系型的、分布式的、開(kāi)源的、水平可擴(kuò)展的。原始的目的是為了大規(guī)模web應(yīng)用,這場(chǎng)運(yùn)動(dòng)開(kāi)始于2009年初,通常特性應(yīng)用如:模式自由、支持簡(jiǎn)易復(fù)制、簡(jiǎn)單的API、最終的一致性(非ACID)、大容量數(shù)據(jù)等。NoSQL被我們用得最多的當(dāng)數(shù)key-value存儲(chǔ),當(dāng)然還有其他的文檔型的、列存儲(chǔ)、圖型數(shù)據(jù)庫(kù)、xml數(shù)據(jù)庫(kù)等。
特點(diǎn):
高性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便。主要功能特性有:
•面向集合存儲(chǔ),易存儲(chǔ)對(duì)象類型的數(shù)據(jù)。
•模式自由。
•支持動(dòng)態(tài)查詢。
•支持完全索引,包含內(nèi)部對(duì)象。
•支持查詢。
•支持復(fù)制和故障恢復(fù)。
•使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對(duì)象(如視頻等)。
•自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展性
•支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++語(yǔ)言的驅(qū)動(dòng)程序,社區(qū)中也提供了對(duì)Erlang及.NET等平臺(tái)的驅(qū)動(dòng)程序。
•文件存儲(chǔ)格式為BSON(一種JSON的擴(kuò)展)。
•可通過(guò)網(wǎng)絡(luò)訪問(wèn)。
功能:
•面向集合的存儲(chǔ):適合存儲(chǔ)對(duì)象及JSON形式的數(shù)據(jù)。
•動(dòng)態(tài)查詢:Mongo支持豐富的查詢表達(dá)式。查詢指令使用JSON形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對(duì)象及數(shù)組。
•完整的索引支持:包括文檔內(nèi)嵌對(duì)象及數(shù)組。Mongo的查詢優(yōu)化器會(huì)分析查詢表達(dá)式,并生成一個(gè)高效的查詢計(jì)劃。
•查詢監(jiān)視:Mongo包含一個(gè)監(jiān)視工具用于分析數(shù)據(jù)庫(kù)操作的性能。
•復(fù)制及自動(dòng)故障轉(zhuǎn)移:Mongo數(shù)據(jù)庫(kù)支持服務(wù)器之間的數(shù)據(jù)復(fù)制,支持主-從模式及服務(wù)器之間的相互復(fù)制。復(fù)制的主要目標(biāo)是提供冗余及自動(dòng)故障轉(zhuǎn)移。
•高效的傳統(tǒng)存儲(chǔ)方式:支持二進(jìn)制數(shù)據(jù)及大型對(duì)象(如照片或圖片)
•自動(dòng)分片以支持云級(jí)別的伸縮性:自動(dòng)分片功能支持水平的數(shù)據(jù)庫(kù)集群,可動(dòng)態(tài)添加額外的機(jī)器。
適用場(chǎng)合:
•網(wǎng)站數(shù)據(jù):Mongo非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。
•緩存:由于性能很高,Mongo也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由Mongo搭建的持久化緩存層可以避免下層的數(shù)據(jù)源 過(guò)載。
•大尺寸,低價(jià)值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)一些數(shù)據(jù)時(shí)可能會(huì)比較昂貴,在此之前,很多時(shí)候程序員往往會(huì)選擇傳統(tǒng)的文件進(jìn)行存儲(chǔ)。
•高伸縮性的場(chǎng)景:Mongo非常適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫(kù)。Mongo的路線圖中已經(jīng)包含對(duì)MapReduce引擎的內(nèi)置支持。
•用于對(duì)象及JSON數(shù)據(jù)的存儲(chǔ):Mongo的BSON數(shù)據(jù)格式非常適合文檔化格式的存儲(chǔ)及查詢。
三、下載安裝和配置
安裝Mongo數(shù)據(jù)庫(kù):
在發(fā)布本文的時(shí)間官方提供的最新版本是:1.6.5 ,如果不做特殊聲明,本教程所用的版本將會(huì)是這個(gè)版本。
1.第一步:下載安裝包:官方下載地址←單擊此處,如果是win系統(tǒng),注意是64位還是32位版本的,請(qǐng)選擇正確的版本。
2.第二步:新建目錄“D:\MongoDB”,解壓下載到的安裝包,找到bin目錄下面全部.exe文件,拷貝到剛創(chuàng)建的目錄下。
3.第三步:在“D:\MongoDB”目錄下新建“data”文件夾,它將會(huì)作為數(shù)據(jù)存放的根文件夾。
配置Mongo服務(wù)端:
打開(kāi)CMD窗口,按照如下方式輸入命令:
> d:
> cd D:\MongoDB
> mongod --dbpath D:\MongoDB\data
配置成功后會(huì)看到如下畫(huà)面:
在瀏覽器輸入:http://localhost:27017/,可以看到如下提示:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
如此,MongoDB數(shù)據(jù)庫(kù)服務(wù)已經(jīng)成功啟動(dòng)了。
四、后記
現(xiàn)在我們已經(jīng)初步實(shí)現(xiàn)了MongoDB的安裝和服務(wù)的啟動(dòng)工作。后面我們還有很多的工作,要使MongoDB能在我們的C#代碼中被操作,還需要驅(qū)動(dòng),經(jīng)常有朋友在網(wǎng)上copy代碼后發(fā)現(xiàn)編譯不通過(guò),那估計(jì)是驅(qū)動(dòng)不一致的問(wèn)題了,下篇文章會(huì)詳細(xì)講解,未完待續(xù)。。
- MongoDB 學(xué)習(xí)筆記(一)-MongoDB配置
- MongoDB學(xué)習(xí)筆記(六) MongoDB索引用法和效率分析
- MongoDB學(xué)習(xí)筆記之分組(group)使用示例
- MongoDB學(xué)習(xí)筆記(五) MongoDB文件存取操作
- MongoDB學(xué)習(xí)筆記—Linux下搭建MongoDB環(huán)境
- MongoDB學(xué)習(xí)筆記(三) 在MVC模式下通過(guò)Jqgrid表格操作MongoDB數(shù)據(jù)
- MongoDB學(xué)習(xí)筆記(四) 用MongoDB的文檔結(jié)構(gòu)描述數(shù)據(jù)關(guān)系
- MongoDB學(xué)習(xí)筆記(二) 通過(guò)samus驅(qū)動(dòng)實(shí)現(xiàn)基本數(shù)據(jù)操作
- Windows下MongoDB的下載安裝、環(huán)境配置教程圖解
- MongoDB的下載、安裝與部署方法
- MongoDB系列教程(三):Windows中下載和安裝MongoDB
- mongodb數(shù)據(jù)庫(kù)入門學(xué)習(xí)筆記之下載、安裝、啟動(dòng)、連接操作解析
相關(guān)文章
每天學(xué)一分鐘使用Git服務(wù)器實(shí)現(xiàn)查看Debug分支及修復(fù)
這篇文章主要教大家怎樣實(shí)現(xiàn)查看Debug分支及修復(fù),學(xué)習(xí)是一條長(zhǎng)遠(yuǎn)而無(wú)盡頭之路,堅(jiān)持就不用多少說(shuō)了,只要大家每天花一分鐘的時(shí)間來(lái)學(xué)習(xí)一下Git相信查看Debug分支及修復(fù)對(duì)大家來(lái)說(shuō)就是so easy2021-08-08Windows服務(wù)器文件備份到本地的方法、Windows服務(wù)器數(shù)據(jù)備份方案
重要的數(shù)據(jù)必須備份,并且必須實(shí)時(shí)備份,否則一旦出現(xiàn)意外情況,將會(huì)給服務(wù)器文件安全帶來(lái)巨大災(zāi)難。那么,如何備份服務(wù)器文件呢?下面就一起來(lái)了解一下2019-05-05Win2003下cwRsyncServer服務(wù)端與cwRsync客戶端數(shù)據(jù)同步實(shí)例教程
這篇文章主要介紹了Win2003下cwRsyncServer服務(wù)端與cwRsync客戶端數(shù)據(jù)同步實(shí)例教程,需要的朋友可以參考下2015-07-07扔掉VPS面板!網(wǎng)站平滑遷移到LNMP或LAMP建站環(huán)境的方法圖解
VPS面板帶來(lái)了建站的便利,但是也導(dǎo)致了不少的問(wèn)題,現(xiàn)在看來(lái)VPS面板很多的功能都是可以自己通過(guò)VPS配置來(lái)完成的,于是扔掉VPS面板,將網(wǎng)站遷移到LNMP或LAMP建站環(huán)境就自然應(yīng)運(yùn)而生的。下面給大家介紹扔掉VPS面板!網(wǎng)站平滑遷移到LNMP或LAMP建站環(huán)境的方法,一起看看吧2017-07-07網(wǎng)站控制臺(tái)directadmin中文手冊(cè) Linux下虛擬主機(jī)管理
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn),本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系2009-11-11基于HTTP協(xié)議實(shí)現(xiàn)的小型web服務(wù)器的方法
這篇文章主要介紹了基于HTTP協(xié)議實(shí)現(xiàn)的小型web服務(wù)器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2007-08-08