本章主要講什么(一句話)?

《項(xiàng)目實(shí)戰(zhàn):基于Angular2+Mongodb+Node技術(shù)實(shí)現(xiàn)的多用戶博客系統(tǒng)教程(2)》
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -- 基于MongoDB的MyBlog數(shù)據(jù)庫知識技術(shù)儲備(上)
一、前言
在開始正式講解本系統(tǒng)前,我們可能需要給大家準(zhǔn)備一些基本知識的儲備,本節(jié)我們將會給大家快速的補(bǔ)充一下本系統(tǒng)必須的MongoDB部分的知識點(diǎn),具體包括以下內(nèi)容:
了解什么是MongoDB以及MongoDB的特性
掌握MongoDB最常見的用法
二、認(rèn)識非關(guān)系型數(shù)據(jù)庫MongoDB
2.1、MongoDB簡介
官方定義:MongoDB 是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
通俗解釋: Mongo DB ,是目前在IT行業(yè)非常流行的一種非關(guān)系型數(shù)據(jù)庫(NoSql),其靈活的數(shù)據(jù)存儲方式,備受當(dāng)前IT從業(yè)人員的青睞。Mongo DB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷?OO思想),在Mongo DB中 每一條記錄都是一個(gè)Document對象。Mongo DB最大的優(yōu)勢在于所有的數(shù)據(jù)持久操作都無需開發(fā)人員手動編寫SQL語句,直接調(diào)用方法就可以輕松的實(shí)現(xiàn)CRUD操作。
特點(diǎn)
1、MongoDB是基于文檔的數(shù)據(jù)庫
2、是介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間的產(chǎn)品(最像關(guān)系性數(shù)據(jù)庫的NoSQL)
3、支持類似json的bson格式,數(shù)據(jù)結(jié)構(gòu)非常松散
官網(wǎng)地址:http://www.mongodb.org/ 百度百科:http://baike.baidu.com/subview/3385614/9338179.htm
2.2、MongoDB優(yōu)缺點(diǎn)
優(yōu)點(diǎn):弱一致性文檔結(jié)構(gòu)的存儲方式內(nèi)置GridFS(分布式文件系統(tǒng))
缺點(diǎn):不支持事務(wù)空間占用大
2.3、主要適用場合
其主要場景如下:
1)網(wǎng)站實(shí)時(shí)數(shù)據(jù)處理。它非常適合實(shí)時(shí)的插入、更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。
2)緩存。由于性能很高,它適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由它搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
3)高伸縮性的場景。非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫,它的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持。
不適用的場景如下:
1)要求高度事務(wù)性的系統(tǒng)。
2)傳統(tǒng)的商業(yè)智能應(yīng)用。
3)復(fù)雜的跨文檔(表)級聯(lián)查詢。
三、MongoDB安裝配置
1)在官網(wǎng)直接下載安裝包,下載地址:http://www.mongodb.org/downloads
2)安裝非常的簡單只要,解壓或者安裝就可以。這取決于你下載的是msi安裝包
是zip壓縮包。
如果是zip的壓縮包。直接解壓,解壓后,放在D:/MongoDB目錄下。為了命令行的方便,可以把D:/MongoDB/bin加到系統(tǒng)環(huán)境變量的path中。
如果是msi安裝包?;灸J(rèn)安裝下一步下一步即可,注意你的安裝路徑。
3)測試是否安裝成功
D:\>mongod ?--dbpath ?D:/MongoDB/data
Sun Oct 24 15:07:05 MongoDB starting : pid=2472 port=27017
dbpath=D:/MongoDB/data 32-bit
** NOTE: This is a development version (1.7.1) of MongoDB.
。。。。
Sun Oct 24 15:07:05 [websvr] web admin interface listening on port 28017
由于是開發(fā)版,上面就有個(gè)警告,沒關(guān)系,忽略它。
最后兩行說明的數(shù)據(jù)庫端口和Web端口,分別是27017和28017,在瀏覽器中打開http://localhost:27017,可以看到其相關(guān)的一些信息。
這樣說明安裝成功。
四、MongoDB基本用法
4.1、創(chuàng)建庫
use 命令
MongoDB use DATABASE_NAME 用于創(chuàng)建數(shù)據(jù)庫。該命令將創(chuàng)建一個(gè)新的數(shù)據(jù)庫,如果它不存在,否則將返回現(xiàn)有的數(shù)據(jù)庫。
語法:
use DATABASE 語句的基本語法如下:
use DATABASE_NAME
示例:
如果想創(chuàng)建一個(gè)數(shù)據(jù)庫名稱 , 那么 use DATABASE 語句如下:
>use testDB
switched to db testDB
要檢查當(dāng)前選擇的數(shù)據(jù)庫使用命令 db
>db
testDB
PS:
前提1 - mongodb安裝在d:/mongodb目錄下
前提2 - 已經(jīng)將d:/mongdb/bin配置在windows環(huán)境變量的path路徑中
前提3 – 在d:/mongodb/目錄下新建一data文件夾
前提4 – 運(yùn)行cmd命令,在命令行中健入如下命令:
> mongod --dbpath D:/MongoDB/data
運(yùn)行如下圖所示:

說明mongodb服務(wù)器啟動在:127.0.0.1:385979端口處監(jiān)聽請求!
重新打開一新的控制臺:
并健入如下命令:mongo

用于連結(jié)服務(wù)器,默認(rèn)連結(jié)他的默認(rèn)數(shù)據(jù)庫test
說明創(chuàng)建數(shù)據(jù)庫成功!
查看數(shù)據(jù)庫:
控制臺中健入如下命令:show dbs,注意此時(shí)顯示的只會有l(wèi)ocal數(shù)據(jù)庫,卻沒有testDB,原因是因此時(shí)數(shù)據(jù)庫并沒有集合(數(shù)據(jù)),所以此時(shí)只有邏輯數(shù)據(jù)庫產(chǎn)生,并沒有產(chǎn)真正意義上的物理數(shù)據(jù),必須調(diào)用db.createCollection("集合名")后,具體的后面會講到,再次運(yùn)行: show dbs命令,才能看到testDB數(shù)據(jù)庫,另外,mongodb的命令是區(qū)分大小寫的,這一點(diǎn)也是要注意!
4.2、刪除庫
dropDatabase()方法
MongoDB db.dropDatabase() 命令是用來刪除一個(gè)現(xiàn)有的數(shù)據(jù)庫。
語法:
dropDatabase() 命令的基本語法如下:
> db.dropDatabase()
這將刪除選定的數(shù)據(jù)庫。如果還沒有選擇任何數(shù)據(jù)庫,然后它會刪除默認(rèn)的 ' test' 數(shù)據(jù)庫
示例:
首先,檢查列表數(shù)據(jù)庫通過使用命令 show dbs
>show dbs
local ? ? ?0.78125GB
mydb ? ? ? 0.23012GB
test ? ? ? 0.23012GB
>
如果想刪除新數(shù)據(jù)庫 , ?那么 dropDatabase() 命令如下:
>use mydb
switched to db mydb
>db.dropDatabase()
>{ "dropped" : "mydb", "ok" : 1 }
>
現(xiàn)在檢查的數(shù)據(jù)庫列表:
>show dbs
local ? ? ?0.78125GB
test ? ? ? 0.23012GB
>
4.3、創(chuàng)建集合
在mongodb里面,沒有表的概念,集合(collections)就相當(dāng)于傳統(tǒng)數(shù)據(jù)庫中的表。
createCollection() 方法
MongoDB db.createCollection(name, options) 是用來創(chuàng)建集合.
語法:
基本的 createCollection() 命令語法如下:
db.createCollection(name, options)

在命令中, name 是要?jiǎng)?chuàng)建的集合的名稱. Options 是一個(gè)文件,用于指定配置的集合

選項(xiàng)參數(shù)是可選的,所以只需要到指定的集合名稱。以下是可以使用的選項(xiàng)列表:
例子:
createCollection() 方法不使用選項(xiàng)的基本語法如下:
>use test
switched to db test
>db.createCollection("mycollection")
{ "ok" : 1 }
>
可以檢查通過使用創(chuàng)建的集合命令 show collections
>show collections
mycollection
system.indexes
下面的例子顯示了幾個(gè)重要的選項(xiàng) createCollection()方法的語法:
>db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
{ "ok" : 1 }
>
在MongoDB中,不需要?jiǎng)?chuàng)建集合。當(dāng)插入一些文件 MongoDB 自動創(chuàng)建的集合。
>db.newdb.insert({"name" : "yiibai"})
>show collections
mycol
mycollection
system.indexes
newdb
>
4.4、刪除集合
drop() 方法
MongoDB 的 db.collection.drop() 是用來從數(shù)據(jù)庫中刪除一個(gè)集合。
語法:
drop() 命令的基本語法如下
db.COLLECTION_NAME.drop()
示例:
首先,檢查可用的集合在數(shù)據(jù)庫 mydb
>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
yiibai
>
現(xiàn)在刪除集合名稱為 mycollection
>db.mycollection.drop()
true
>
再次檢查到數(shù)據(jù)庫中的集合列表
>show collections
mycol
system.indexes
yiibai
>
drop() 方法將返回 true,如果選擇成功收集被丟棄,否則將返回 false
五、后述
? ? 《基于Angular2+Mongodb+Node技術(shù)實(shí)現(xiàn)的多用戶博客系統(tǒng)》正在連載中,明天我將為大家推出【第三章:基于MongoDB的MyBlog數(shù)據(jù)庫設(shè)計(jì)篇(高級篇)】,歡迎各位繼續(xù)關(guān)注~
? ? 搜索并關(guān)注“風(fēng)舞煙”的簡書專欄、頭條號、微信公眾號、 企鵝媒體平臺,你可以定期收到關(guān)于簡書專欄的最新動態(tài)以及IT前沿最新技術(shù)的高質(zhì)量經(jīng)驗(yàn)文章、視頻分享。
? 謝謝大家的支持,歡迎大家留言交流。