在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ 簡(jiǎn)介
掌握查詢(xún)
簡(jiǎn)介
性能和工具
MongoDB 適用場(chǎng)景
數(shù)據(jù)建模
數(shù)據(jù)聚合
基礎(chǔ)知識(shí)
更新

簡(jiǎn)介

這章那么短不是我的錯(cuò),MongoDB 就真的很易學(xué)。

都說(shuō)技術(shù)在飛速發(fā)展。確實(shí),有接連不斷的新技術(shù)新方法出現(xiàn)。但是,我一直認(rèn)為,程序員用到的基礎(chǔ)技術(shù)的發(fā)展卻是相當(dāng)緩慢的。你可以好幾年不學(xué)習(xí)但還能混得下去。令人驚訝的其實(shí)是成熟技術(shù)的被替換速度。就像在一夜之間,那些長(zhǎng)期穩(wěn)定成熟的技術(shù)發(fā)現(xiàn)它們不再被開(kāi)發(fā)者關(guān)注。

最好的例子就是 NoSQL 技術(shù)的發(fā)展,以及它對(duì)穩(wěn)定的關(guān)系型數(shù)據(jù)庫(kù)市場(chǎng)的蠶食??雌饋?lái)就像,昨天網(wǎng)絡(luò)還是由 RDBMS 們來(lái)驅(qū)動(dòng)的,而今天,就冒出五種左右的 NoSQL 解決案已經(jīng)證明了它們都是值得擁有的。

雖然這些轉(zhuǎn)變看起來(lái)都是一夜之間發(fā)生的,實(shí)際上他們他們可能花了數(shù)年的時(shí)間來(lái)取得公眾的認(rèn)可。最開(kāi)始是由一小波開(kāi)發(fā)者和公司在推動(dòng)。解決方案被不斷細(xì)化,吸取教訓(xùn),然后一個(gè)新技術(shù)就這樣誕生了,慢慢的后來(lái)者也開(kāi)始了嘗試。再次重申,NoSQL 的許多解決方案并不是為了取代傳統(tǒng)的存儲(chǔ)方案,而是解決一些特殊需求,填補(bǔ)了傳統(tǒng)解決方案的一些空白。

說(shuō)了那么多,我們第一件應(yīng)該解決的事情是解釋一下什么是 NoSQL。它是一個(gè)寬松的概念,不同的人有不同的見(jiàn)解。就個(gè)人而言,我通常認(rèn)為它是數(shù)據(jù)存儲(chǔ)系統(tǒng)的一部分。換而言之,NoSQL (重申, 就我而言),的好處是讓你的持久層不需要一個(gè)獨(dú)立的系統(tǒng)。歷史上,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)廠(chǎng)商嘗試把他們的產(chǎn)品當(dāng)作一攬子解決方案,NoSQL 傾向于扮演,在特定的工作中充當(dāng)最好的工具這種角色。因此,你的 NoSQL 架構(gòu)中還是可以用到關(guān)系型數(shù)據(jù)庫(kù),比如說(shuō) MySQL,但是可以也可以用 Redis 作為系統(tǒng)中某部分的持久層,或者是用到 Hadoop 來(lái)處理大數(shù)據(jù)。簡(jiǎn)而言之,NoSQL 就是需要用開(kāi)放的可代替的意識(shí),使用現(xiàn)有的或者未來(lái)的方式和工具來(lái)管理你的數(shù)據(jù)。

你會(huì)想知道,MongoDB 是不是適用于這一切。作為一個(gè)面向文檔數(shù)據(jù)庫(kù),MongoDB 是最通用的 NoSQL 解決案。它可以看成是關(guān)系型數(shù)據(jù)庫(kù)的代替方案。和關(guān)系型數(shù)據(jù)庫(kù)一樣,它也可以和其他的 NoSQL 解決案搭配在一起更好的工作。MongoDB 有優(yōu)點(diǎn)也有缺點(diǎn),我們將會(huì)在本書(shū)后面的章節(jié)中介紹。

如你所見(jiàn),我們混用了 MongoDB 和 Mongo 兩個(gè)術(shù)語(yǔ)。

開(kāi)始

本書(shū)大部分內(nèi)容將會(huì)專(zhuān)注于 MongoDB 的核心功能。我們會(huì)用到 MongoDB 的 shell。因?yàn)?shell 不但有助于學(xué)習(xí),而且還是個(gè)很有用的管理工具。實(shí)際代碼中你需要用到 MongoDB 驅(qū)動(dòng)。

這也引出了關(guān)于 MongoDB 你所需要知道的第一件事: 它的驅(qū)動(dòng)。MongoDB 有各種語(yǔ)言的 官方驅(qū)動(dòng)。這些驅(qū)動(dòng)可以認(rèn)為是和你所熟悉的各種數(shù)據(jù)庫(kù)驅(qū)動(dòng)一樣的東西?;谶@些驅(qū)動(dòng),開(kāi)發(fā)社區(qū)又創(chuàng)建了更多的語(yǔ)言/框架相關(guān)庫(kù)。比如說(shuō),NoRM 是一個(gè) C# 語(yǔ)言庫(kù),用 LINQ 實(shí)現(xiàn),而 MongoMapper 是一個(gè) Ruby 庫(kù),ActiveRecord-friendly。你可以選擇直接對(duì) MongoDB 核心進(jìn)行開(kāi)發(fā),或選擇高級(jí)庫(kù)。之所以要指出,是因?yàn)樵S多新手都覺(jué)得迷惑,為什么這里有官方版本和社區(qū)版本 - 前者通常關(guān)心和 MongoDB 核心的通訊/連接,而后者有更多的語(yǔ)言和框架的實(shí)現(xiàn)。

說(shuō)到這,我希望你可以在 MongoDB 環(huán)境中嘗試一下我的例子,并且在嘗試解決可能遇到的問(wèn)題。MongoDB 很容易安裝和運(yùn)行,所以讓我們花幾分鐘把所有的東西運(yùn)行起來(lái)。

  1. 先打開(kāi) 官方下載頁(yè)面 ,從你選擇的操作系統(tǒng)下面的第一行(推薦穩(wěn)定版本)下載二進(jìn)制文件。根據(jù)開(kāi)發(fā)實(shí)際,你可以選擇 32位 或者 64位。

  2. 解壓縮文件 (隨便你放哪) 然后進(jìn)入 bin 子目錄。現(xiàn)在還不要執(zhí)行任何命令,只要記住 mongod 用來(lái)打開(kāi)服務(wù)進(jìn)程,mongo 打開(kāi)客戶(hù)端 shell - 大部分時(shí)間我們將要使用這兩個(gè)命令。

  3. bin 子目錄下創(chuàng)建一個(gè)文本文件,命名為 mongodb.config

  4. 在 mongodb.config 中添加一行: dbpath=PATH_TO_WHERE_YOU_WANT_TO_STORE_YOUR_DATABASE_FILES。比如,在 Windows 你可以寫(xiě) dbpath=c:\mongodb\data ,在 Linux 可能是 dbpath=/var/lib/mongodb/data。

  5. 確保你指定的 dbpath 確實(shí)存在。

  6. 執(zhí)行 mongod ,帶上參數(shù) --config /path/to/your/mongodb.config 。

以 Windows 用戶(hù)為例,如果你解壓下載文檔到 c:\mongodb\ ,并且你創(chuàng)建了 c:\mongodb\data\ ,那么在 c:\mongodb\bin\mongodb.config 你要指定 dbpath=c:\mongodb\data\。 然后你可以在 CMD 執(zhí)行 mongod 如下命令行 c:\mongodb\bin\mongod --config c:\mongodb\bin\mongodb.config。

為省心你可以把 bin 文件夾路徑添加到環(huán)境變量 PATH 中,可以簡(jiǎn)化命令。MacOSX 和 Linux 用戶(hù)方法幾乎一樣。唯一需要改變的是路徑。

希望你現(xiàn)在已經(jīng)可以啟動(dòng) MongoDB 了。如果出現(xiàn)異常,仔細(xì)閱讀一下異常信息 - 服務(wù)器對(duì)異常的解釋做得非常好。

現(xiàn)在你可以執(zhí)行 mongo (沒(méi)有 d) ,鏈接 shell 到你的服務(wù)器上了。嘗試輸入 db.version() 來(lái)確認(rèn)所有都正確執(zhí)行了。你應(yīng)該能拿到一個(gè)已安裝的版本號(hào)。

上一篇:性能和工具