day8學(xué)習(xí)筆記

2016年數(shù)據(jù)庫(kù)排行榜前十?dāng)?shù)據(jù)庫(kù)簡(jiǎn)單介紹:

數(shù)據(jù)庫(kù)使用熱度排行榜
  1. Oracle是甲骨文公司的,使用需要付費(fèi),非開源的
  2. MySQL目前很多公司都在使用,已經(jīng)被甲骨文收購(gòu),之前是開源的,但是現(xiàn)在也有很多功能已經(jīng)開始封裝,非完全開源了
  3. windows上的數(shù)據(jù)庫(kù),早年間很多游戲平臺(tái)使用的是這個(gè)數(shù)據(jù)庫(kù)
  4. MongoDB 近年來發(fā)展起來的文檔類型數(shù)據(jù)庫(kù),增長(zhǎng)較快,配合nodeJS使用
  5. PostgreSQL 暫時(shí)不知道
  6. DB2...
  7. Cassandra...
  8. Microsoft Acess...
  9. SQLite 小型,輕量型關(guān)系型數(shù)據(jù)庫(kù),目前安卓,蘋果端機(jī)子本地存儲(chǔ)使用的是SQLite數(shù)據(jù)庫(kù)
  10. Redis 是一種nosql,其他暫時(shí)不知道...

MongoDB簡(jiǎn)介

MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),由C++語言編寫,旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)庫(kù)存儲(chǔ)方案,MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的.

MongoDB安裝

Linux平臺(tái)安裝MongoDB-->下載地址
選擇對(duì)應(yīng)的版本進(jìn)行下載,在此,我選擇的是ubuntu16.04 64位的版本的下載

下載指令:curl -o  https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.9.tgz/
解壓指令:tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.2.9.tgz
將解壓包拷貝到指定目錄:mv mongodb-linux-x86_64-ubuntu1604-3.2.9 指定目錄(在此,我拷貝到了/usr/local/mongodb)
Mongodb可執(zhí)行文件位于bin目錄下,所以可以將其添加到path路徑中:
export PATH=<mongodb-install-directory>/bin:$PATH
在此我的為:export PATH = /usr/local/mongodb/bin:$PATH
創(chuàng)建數(shù)據(jù)庫(kù)目錄:
Mongodb數(shù)據(jù)存儲(chǔ)在data目錄的db目錄下,但是這個(gè)目錄在安裝過程中不會(huì)自動(dòng)創(chuàng)建,所以需要手動(dòng)創(chuàng)建data目錄,并在data目錄中創(chuàng)建db目錄
注意:/data/db是MongoDB默認(rèn)的啟動(dòng)數(shù)據(jù)庫(kù)路徑(--dbpath)
mkdir -p /data/db 如果數(shù)據(jù)庫(kù)目錄不是/data/db目錄,可以通過--dbpath來指定
# 進(jìn)入mongodb/bin目錄下,執(zhí)行./mongod啟動(dòng)mongodb   ./mongod &這是表示在后臺(tái)啟動(dòng)(如果不這樣啟動(dòng),那么這個(gè)窗口就不能使用了,他會(huì)在前臺(tái)執(zhí)行...針對(duì)ubuntu服務(wù)器)
#  MongoDB后臺(tái)管理Shell
如果需要進(jìn)入MongoDB后臺(tái)管理,你需先打開mongodb裝目錄的下的bin目錄,然后執(zhí)行mongo命令文件.
MongoDB Shell是MongoDB自帶的交互式j(luò)avascript shell,用來對(duì)mongodb進(jìn)行操作
cd /usr/local/mongodb/bin
./mongo
......
MongoDB web用戶界面

MongoDB提供了簡(jiǎn)單的HTTP用戶界面,如果你想啟用該功能,需要在啟動(dòng)的時(shí)候指定參數(shù) --rest.

.mongod --dbpath = /data/db --rest
MongoDB的web界面訪問端比服務(wù)的端口多1000.如果你的mongodb運(yùn)行端口使用27017,你可以在端口號(hào)為28017訪問web用戶界面.即http://localhost:28017.

創(chuàng)建數(shù)據(jù)庫(kù)

# 創(chuàng)建語法如下:
use DATABASE_NAME   如果數(shù)據(jù)庫(kù)不存在,則創(chuàng)建數(shù)據(jù)庫(kù),否則切換到指定數(shù)據(jù)庫(kù)
實(shí)例:
>use edwin
switched to db edwin
>db
edwin
# 如果想查看所有數(shù)據(jù)庫(kù),可以使用show dbs命令,
剛創(chuàng)建的數(shù)據(jù)庫(kù)edwin并不會(huì)被show出來,如果要顯示,我們需要向edwin插入一些數(shù)據(jù)

刪除數(shù)據(jù)庫(kù)

# MongoDB刪除數(shù)據(jù)庫(kù)的語法格式如下:
db.dropDatabase()
刪除當(dāng)前所使用的數(shù)據(jù)庫(kù),默認(rèn)情況下test
實(shí)例:
刪除我們之前創(chuàng)建的數(shù)據(jù)庫(kù)edwin
>show dbs   查看當(dāng)前所有的數(shù)據(jù)庫(kù)
....
>use edwin   進(jìn)入之前創(chuàng)建的數(shù)據(jù)庫(kù) edwin
...
>db.dropDatabase()   刪除數(shù)據(jù)庫(kù)edwin
...
>show dbs    查看是否已經(jīng)刪除成功
# 刪除集合的語法格式如下
db.collection.drop()

MongoDB插入文檔

文檔的數(shù)據(jù)結(jié)構(gòu)和json基本一樣,所有存儲(chǔ)在集合中的數(shù)據(jù)都是BSON格式
BSON是一種類json的一種二進(jìn)制形式的存儲(chǔ)格式,簡(jiǎn)稱Binary JSON
# 插入文檔
MongoDB使用insert()或save()方法向集合中插入文檔,語法如下:
db.COLLECTION_NAME.insert(document);
# 實(shí)例
以下文檔可以存儲(chǔ)在MongoDB的edwin數(shù)據(jù)庫(kù)的col集合中
>db.col.insert({title:"MongoDB教程",
description:"MongoDB是一個(gè)Nosql數(shù)據(jù)庫(kù)",
byb:"哈哈",
tags:["MongoDB","database","NoSQL"],
likes:100
})
以上實(shí)例中col是我們的集合名,如果該集合不存在該數(shù)據(jù)庫(kù)中,mongoDB會(huì)自動(dòng)創(chuàng)建該集合并插入文檔,
查看已插入文檔:
>db.col.find()
# 第二種插入數(shù)據(jù)的庫(kù)方式
我們可以將數(shù)據(jù)定義為一個(gè)變量
> document = ({title:"haha"});
執(zhí)行后顯示該變量的值
然后執(zhí)行插入操作
>db.col.insert(document)
# 插入文檔也可以使用db.col.save(document)命令.
如果不指定_id字段save()方法類似與inset方法,如果指定id字段,
則會(huì)更新該_id的數(shù)據(jù).

MongoDB更新文檔

MongoDB使用update()和save()方法來更新集合中的文檔

#update()方法
語法格式:
db.collection.update(
  <query>,
  <update>,
  {
    upset:<boolean>,
    multi:<boolean>,
    writeConcern:<document>
  }
)
參數(shù)說明:
query:update的查詢條件,類似sql update查詢內(nèi)的where后面的.
update:update的對(duì)象和一些更新的操作符(如$,$inc...),也可以理解為sql update查詢內(nèi)的set后面的
upset:可選,這個(gè)參數(shù)的意思是,如果不存在update的記錄,是否插入objNEW,true為插入,默認(rèn)是false,不插入.
multi:可選,mongoDB默認(rèn)是false,只更新找到的第一條記錄,如果這個(gè)參數(shù)為ture,就
把按條件查出來的多條記錄全部更新.
writeConcern:可選,拋出異常的級(jí)別
實(shí)例:
db.col.update({''title':'MongoDB教程'},{$set:{'title':'MongoDB'}})
db.col.find().pretty()
注意:find后加pretty(),是說讓查找的內(nèi)容以集合的形式展示,一行一條記錄,比較直觀
# save方法
save()方法通過傳入的文檔來替換已有的文檔,語法格式如下:
db.collection.save(
  <document>,
  {
    writeConcern:<document> 
  }
)
參數(shù)說明:
document:文檔數(shù)據(jù)
writeConcern:可選,拋出異常的級(jí)別
實(shí)例:
db.col.save({ "_id" : ObjectId("56064f89ade2f21f36b03136"),
 "title" : "MongoDB", 
"description" : "MongoDB 是一個(gè) Nosql 數(shù)據(jù)庫(kù)", 
"by" : "Runoob", 
"url" : "http://www.runoob.com", 
"tags" : [ "mongodb", "NoSQL" ],
 "likes" : 110
})
db.col.find().pretty()  進(jìn)行查詢是否更新完成

MongoDB刪除文檔

MongDB remove()函數(shù)式用來移除集合中的數(shù)據(jù),MongoDB數(shù)據(jù)更新可以使用
update()函數(shù),在執(zhí)行remove函數(shù)前先執(zhí)行find()命令來判斷執(zhí)行的條件是否正確,這是
一個(gè)比較好的習(xí)慣
語法格式:
db.collection.remove(
  <query>,
  <justOne>
)
參數(shù)說明
query:(可選參數(shù))刪除的文檔的條件
justOne:(可選參數(shù))如果設(shè)置為true或1,則只刪除一個(gè)文檔
writeConcern:(可選參數(shù))拋出異常的級(jí)別)
>db.col.remove({'title':'MongoDB教程'})
WriteResult({"nRemoved":2})   #刪除了兩條數(shù)據(jù)
>db.col.find()  查看是否已經(jīng)刪除成功

MongoDB查詢文檔

>db.COLLECTION_NAME.find()
find方法以非結(jié)構(gòu)的方式來顯示所有文檔.
如果你需要以易讀的方式來讀取數(shù)據(jù),可以使用pretty()方法,語法格式如下
>db.COLLECTION_NAME.find().pretty()
除了find()方法之外,還有一個(gè)findOne()方法,他只返回一個(gè)文檔
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子婚度,更是在濱河造成了極大的恐慌昼榛,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阎毅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)佳镜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凡桥,“玉大人蟀伸,你說我怎么就攤上這事∶骞簦” “怎么了啊掏?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)衰猛。 經(jīng)常有香客問我迟蜜,道長(zhǎng),這世上最難降的妖魔是什么啡省? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任娜睛,我火速辦了婚禮髓霞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘微姊。我一直安慰自己酸茴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布兢交。 她就那樣靜靜地躺著薪捍,像睡著了一般当纱。 火紅的嫁衣襯著肌膚如雪蹭沛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天辫红,我揣著相機(jī)與錄音晴裹,去河邊找鬼被济。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涧团,可吹牛的內(nèi)容都是我干的只磷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼泌绣,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼钮追!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阿迈,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤元媚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后苗沧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刊棕,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年待逞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甥角。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡识樱,死狀恐怖蜈膨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牺荠,我是刑警寧澤翁巍,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站休雌,受9級(jí)特大地震影響灶壶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杈曲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一驰凛、第九天 我趴在偏房一處隱蔽的房頂上張望胸懈。 院中可真熱鬧,春花似錦恰响、人聲如沸趣钱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽首有。三九已至,卻和暖如春枢劝,著一層夾襖步出監(jiān)牢的瞬間井联,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工您旁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烙常,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓鹤盒,卻偏偏與公主長(zhǎng)得像蚕脏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侦锯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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