iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 17
3

今天,是鐵人賽第十七天。
小編,花了一個上午,去買早餐順便抓寶。
就不小心,現在才要做正事。
泡杯咖啡,我們趕緊來看看...
昨天,我們已經簡單的學會了,如何在node.js串接MS-SQL。
而在 Node.js 較常用的 MongoDB,如何做呢?
我們會在今天會先講述如何安裝 MongoDB及設定服務,明天,將會 做node.js的串接與 CURD 簡單的介紹。
讓大家初入門,對 MongoDB在 Node.js的應用之下更得心應手!

什麼是MongoDB ?

1.它是10gen 開發的NoSQL (Not only SQL-不只有SQL)
2.不是關聯式資料庫,沒有 Schema (天啊…)
3.它是用來處理巨量資料的資料庫,這個資料庫是以文件導向儲存(Document Oriented Storage)的資料庫,以key:value 表示, 儲存格式與JSON完全一樣。

使用MongoDB的好處

1.提供豐富的查詢
2.容易向外擴展
3.沒有複雜的關聯
4.使用內部記憶體儲存工作集,進而實現更快的數據訪問
5.單一物件結構清楚
6.不需要應用程式與資料庫物件之間的轉換與對應

什麼時候會需要MongoDB ?

1.Big Data
2.資料採礦
3.手機及社交平台
4.使用者資料管理
5.資料中心

MongoDB資料 v.s. 關聯式資料庫

接下來,有一些MongoDB的術語,與我們過去關聯式資料庫所用的名詞,對照一下:

RDBMS MongoDB
Database Database
Table Collection
Tuple/Row Document
column Field
Table Join Embedded Documents
Primary Key Primary Key (如果沒有設定,mongodb會自動給予 預設主鍵值 _id 欄位)

在Windows上安裝 MongoDB

在安裝前,我們先來確認windows 版本。

在 command prompt 輸入,並執行:
C:\> wmic os get osarchitecture
OSArchitecture 64-bit <--顯示出所用的OS是哪一種結構。

接著,我們去 MongoDB Downlad Center 下載所需套件:
小編選擇企業版。
http://ithelp.ithome.com.tw/upload/images/20161217/20103526FwtTSsWFE9.png

下載後,可以參考 Install on Windows 我們就依此文件,做以下的操作:

安裝流程

  • Step1.
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526Qi7YqpVHCJ.png

  • Step2.
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526GMpsozzBIC.png

  • Step3. 可以選Custom安裝,這裡就可以設定安裝的路徑。
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526eTLWZvxKOD.png

  • Step4. 系統預設是安裝在 C:\Program Files\MongoDB\Server\3.2\ 那我們這裡就依照官方的,不改。
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526A6n56FvhnM.png

  • Step5.
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526kjD452pRVb.png

  • Step6. 完成
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526Vnn6IZcFHL.png

執行啟動MongoDB

因為,MongoDB 預設資料庫存放位置是 \data\db,所以,我們可以建立這樣的資料庫路徑:
在 D:\ 以Command pormpt 執行 D:\>md \MongoDB\data\mydb
新增三層資料夾,如圖:
http://ithelp.ithome.com.tw/upload/images/20161217/201035263c0b70maLT.png

接著我們在command prompt 要想進入到
C:\Program Files\MongoDB\Server\3.2\bin
執行
D:>cd "C:\Program Files\MongoDB\Server\3.2\bin"

目前,我們位在
C:\Program Files\MongoDB\Server\3.2\bin>

在 > 後面輸入
mongod --dbpath d:\MongoDB\data\db
啟動同時,指定資料庫存放位置!

如圖:
http://ithelp.ithome.com.tw/upload/images/20161217/20103526ClbMwurL0s.png

接著,出現像這樣的畫面,表示MongoDB已經正常啟動了!!!!!
http://ithelp.ithome.com.tw/upload/images/20161217/20103526ojZgpPb4Mr.png

你就可以開始使用了!!!
可以參考一些文件 Getting Started 來做測試。

Note. 關於資料庫存放位置,其實可以自己設定好一個資料夾位置,指定過去就好囉!!!不限於一定得在 \data\db 之下!!!!

使用MongoDB Shell

1.資料庫啟動以後,我們開啟另一個 command prompt 執行
C:\Program Files\MongoDB\Server\3.2\bin\mongo.exe (.exe可以不用)

啟動MongoDB Shell 環境,如圖:
http://ithelp.ithome.com.tw/upload/images/20161217/201035260hfHoKgYVu.png
當我們看到 connecting to: test. Welcome to the MongoDB shello , 代表連線MongoDB成功!

2.我們可以做一些簡單的查詢,比方 show dbs 可以看到底下有哪些資料庫。
要使用資料庫test,可以用 use test
如圖:
http://ithelp.ithome.com.tw/upload/images/20161217/201035264MznLMeGqn.png

3.如何關閉資料庫
離開shell,使用exit
關閉資料庫,中斷連線,在admin資料庫下,使用 db.shutdownServer()
http://ithelp.ithome.com.tw/upload/images/20161217/20103526eq1auIJDPf.png

4.查詢指令使用,好用的"help"

配置MongoDB服務

如果,我們想要將操作MongoDB的記錄,寫進log裡。

我們先建立一個放置log的資料夾,為了有規律的放置檔案
d:\MongoDB\data\db 放置database
d:\MongoDB\data\log 放置log

所以,建立一個資料夾log
d:\MongoDB\data> mkdir log

接著,我們要建立一個config檔案,它是 MongoDB 的配置檔,內容可以配置db路徑(storage.dbPath)及log寫入檔案( systemLog.path )。

C:\Program Files\MongoDB\Server\3.2\mongod.cfg

內容如下

mongod.cfg

systemLog:
    destination: file
    path: d:\MongoDB\data\log\mongod.log
storage:
    dbPath: d:\MongoDB\data\db

接著,我們以系統管理員身份啟動command prompt
cd "c:\Program Files\MongoDB\Server\3.2\bin"

c:\Program Files\MongoDB\Server\3.2\bin> mongod.exe --config "D:\MongoDB\data\mon god.cfg" --install

接著,我們就可以直接在任意位置,以簡單的方式,啟用服務,而不用每次啟動,都要指向資料庫位置。不再用 mongod –dbpath d:\MongoDB\data\db 這一長串東西。

啟用服務:
net start MongoDB

停用服務:
net stop MongoDB

如圖:
http://ithelp.ithome.com.tw/upload/images/20161217/20103526k7hsudlkiH.png

而每執行服務,都會寫一次log 檔,在我們當初配置的資料夾。
http://ithelp.ithome.com.tw/upload/images/20161217/20103526N94ktBODhx.png

接下來,我們來看看一個tricky的東西。雖然,我們已經寫好配置檔,並且,可以在任意地方啟動 mongod 的服務,但是,如果要執行 MongoDB Shell,還是得回到 bin 底下。
如圖,d:> 根本沒有執行檔。
http://ithelp.ithome.com.tw/upload/images/20161217/20103526JAAmw22pMD.png

所以,我們要用設定“環境變數"的方式,去執行mongodb,會更方便!

  • Step1. 右下角開始選單/右鍵/控制台
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526Q3G8CKOdC1.png

  • Step2. 系統及安全性
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526aWoTKT0zXN.png

  • Step3. 系統
    http://ithelp.ithome.com.tw/upload/images/20161217/201035260BfiCP0aJ4.png

  • Step4. 在 右下角 “變更設定" (咦? 置人性行銷??? 誤!!)
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526EUt9jbU3ua.png

  • Step5. 進階/環境變數
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526RPJDn51COn.png

  • Step6. 系統變數的Path,編輯
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526gIHzaxTOt1.png

  • Step7. 將 ;C:\Program Files\MongoDB\Server\3.2\bin\ 加入原本字串後方!!
    http://ithelp.ithome.com.tw/upload/images/20161217/20103526Gyhyho0FMj.png

最後,可以在任意地方,啟動你的MongoDB, 及 MongoDB Shell
http://ithelp.ithome.com.tw/upload/images/20161217/20103526L8QVj4pVix.png

移除MongoDB服務

有安裝服務,就也有移除服務,如果,你決定要移除 mongodb 服務
可以在command prompt 執行

"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --remove


上一篇
Day16 - Node.js 串接 MS-SQL Server
下一篇
Day18 - Node.JS 串接 MongoDB (含CRUD)
系列文
Node.JS - 30 天入門學習筆記32

2 則留言

0
WJ
iT邦新手 5 級 ‧ 2017-01-13 10:26:38

請問在安裝途中...出現這個要怎麼處理
http://ithelp.ithome.com.tw/upload/images/20170113/20103383joGPU5x0r3.png

我沒碰到過, 不過, 可以google看看喔, 試試這?
https://teamtreehouse.com/community/access-control-for-mongodb

WJ iT邦新手 5 級‧ 2017-01-16 11:02:33 檢舉

感謝 我來看一下

0
m88310012
iT邦新手 5 級 ‧ 2018-03-21 11:10:14

大大您好~非常感謝您這篇的教學~但有一個問題請教
我想在別台電腦登入我這台的mongodb要怎麼做呢~
我找了網路上好多教學一直不成功
有人說如果mongodb有正常啟動,在網址列輸入localhost:27017就會顯示登入訊息
但我一直出現"無法連上這個網站" (我用studio 3t是可以正常使用的)
我有去修改mongod.cfg把bindIp改為0.0.0.0但似乎沒甚麼用~~~

我要留言

立即登入留言