mongo db 安裝設定教學 ubuntu install mongod
Step 0. 在ubuntu 系常中透過 apt-get 指令安裝 mongodb
sudo apt-get -y install mongodb
Step 1. 啟動 mongodb (start mongo server)
sudo mongod (若是啟動沒有錯誤會常駐在系統)
Step 2. 第一次啟動 mongodb 發現有錯誤,必需要create folder for 預設的 data base 路徑,或是自己指定路徑。
*********************************************************************
ERROR: dbpath (/data/db/) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
Step 3. 建立 mongodb 所需之資料夾
cd /
sudo mkdir /data
cd data
sudo mkdir /db
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
Step 4. 再次啟動mongodb
sudo service mongodb stop (若是之前有錯誤帶起可以透過這個指令將之帶下來)
sudo mongod
順利啟動 mongodb 之後可以在 console 上看到下列的字樣,一個是 mongodb listen 的 port 號,另外一個是 mongodb 的 web server console 提供服務的port 號。
Fri Aug 28 10:43:28.008 [initandlisten] waiting for connections on port 27017
Fri Aug 28 10:43:28.008 [websvr] admin web console waiting for connections on port 28017
Step 5. 開啟另外一個 terminal 確定 mongodb server 正常服務
Step 6. 連結 mongodb (mongo shell)
mongo [hostname]:[port]/[dbname] # 遠端連線
meson@meson-VirtualBox:~$ mongo localhost:27017
Step 7.
> use mydb
switched to db mydb
Step 6.直接 assign 值至 j 以及 k 二個 keyvalue pair。
> j = { name : "mongo" }
{ "name" : "mongo" }
> k = { x : 3 }
{ "x" : 3 }
Step 7.透過 db.XXX.insert(xxx); 指令來將資料塞進去資料表(若是該資料表不存在會自動建立該table)
> db.MesonData.insert(j);
> db.MesonData.insert(k);
PS:也可以透過db.createCollection("MesonData") 來建立資料表之後再insert 資料進去,但是因為 MongoDB 是一種動態式架構的資料庫,專長就是用來處理非格式化的資料,因此在 insert 一筆資料到 mongodb 之前也沒有必要去事先定義 schema,所以這個db.createCollection("MesonData") 動作似乎顯得有點多餘,因為是在抓到資料準備 insert 進去資料庫的時後才指定要insert 到什麼 collection (集合也就是 table),若是該 collection 不存在 mongodb 就會動態建立一個 collection 讓你insert key value pair 進去,這對於使用關聯式資料庫多年的我們來說真的是很特別的一種架構。
Step 8.透過 show collections 指令來查看 DB 中有哪些 table,這裡可以看到自己建立的 MesonData資料表(collection)已經成功建立了。
> show collections
system.indexes
MesonData
Step 9.秀出 collection (table 的內容)
資料insert 進去 mongo DB 了,這時可以透過 db.MesonData.find(); 指令來秀出 collection 的內容。
> db.MesonData.find();
{ "_id" : ObjectId("55dfd1728c7f3d24438960ae"), "name" : "mongo" }
{ "_id" : ObjectId("55dfd17c8c7f3d24438960af"), "x" : 3 }
>