2015年8月27日 星期四

mongo db 安裝設定教學 ubuntu install mongod


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



 













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 }

>



沒有留言: