2014年12月30日 星期二

MongoDB 教學

近日的NoSQL 議題似乎和傳統關聯式SQL有極大的不同,所以想要好好研究什麼是NoSQL,其中NoSQL中簡易上手的是MongoDB,所以示範MongoDB來如何安裝和儲存資料。

一、MongoDB 限制
l   消耗磁盤空間
l   12個節點的限制
l   不支援32bit
l   差勁的管理工具
l   不可靠的儲存

二、MongoDB 安裝方法

依據你電腦的版本安裝適合的MongoDB



l   Move C:\Program …\MongoDB 2.6 Standard c:\ MongoDB 選擇新路徑
l   Md \data\db    建立MongoDB儲存資料的資料夾
l   Md \data\log   建立MongoDB 儲存啟動服務的日誌檔資料夾
l   c:\ MongoDB\bin\mongod.exe 啟動Mongo server


    注意: 切勿直接關閉喔~~  把它關閉了,就無法連線至mongo DB

l   c:\ MongoDB\bin\mongo.exe 啟動Mongo Client


Ø show dbs 顯示所有資料庫

Ø  use blog 使用資料庫是blog

Ø  顯示所有資料     
db.Post.find()

Ø  新增資料列 
db.Post.insert({
   欄位:“”,
})   儲存資料表Post

Ø  修改資料列
db.Post.update(
{欄位:},修改條件設定
{$set {   欄位: “}})  修改資料

Ø  刪除資料列
db.Post.remove(
{欄位:},修改條件設定
)

三、MongoDB Server 如何開機自動啟動

請用命令提示字元視窗輸入以下指令

建立mongod.cfg

echo logpath=c:\data\log\mongod.log> "C:\ MongoDB \mongod.cfg"

echo dbpath=c:\data\db>> "C:\MongoDB\mongod.cfg"


    建立自動執行的Mongo Server服務
sc.exe create MongoDB binPath= "\"C:\ MongoDB\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\"" DisplayName= "MongoDB " start= "auto"

     啟動服務名稱為:MongoDB
 net start MongoDB


四、MongoDB C# 的結合

安裝nuget 指令:  Install-Package mongocsharpdriver
   
新增mongoDB
string connString = "mongodb://192.168.1.63:27017/blog";
MongoClient _client = new MongoClient(connString);
MongoServer _server = _client.GetServer();
_server.Connect();
// 連接到 db
MongoDatabase db = _server.GetDatabase("blog");
MongoCollection collection = db.GetCollection("Post");
BsonDocument inserData1 = new BsonDocument{
    {"Title","c# "},
    {"Body","this is c#"},
};
collection.Insert(inserData1);
_server.Disconnect();

   取得所有mongoDB資料  
MongoCursor<Post> cursor = collection.FindAllAs<Post>();
var list = cursor.ToList();
radGridView1.DataSource = list.ToArray();

//宣告MongoleDB 對應的物件屬性
public class Post
    {      
        public ObjectId Id  //MongoDB 有預設id 類別為objectid
        {
            get;
            set;
        }
        public string Title
        {
            get;
            set;
        }
        public string Body
        {
            get;
            set;
        }
        public int CharCount
        {
            get;
            set;
        }
    }

刪除mongoDB資料
  //刪除資料
    var query = Query<Post>.EQ(p => p.Title, "c#");
    collection.Remove(query);

修改MongoDB 資料
  //修改資料
    var query = Query<Post>.EQ(p => p.Title, "c# ");
    var update = Update<Post>.Set(p => p.Title, "c# update");
    collection.Update(query, update);
or
   ObjectId objctID= new ObjectId("54a3699d0e925b162c4e2fdd");  //Id
    collection.Save(new Post()
    {
       Id = objctID,
       Title="c# ",
       Body="update c# ''",
       CharCount=10,
   });

     結論:mongoDB 提供可易擴充的欄位結構,但根據有經驗的人說MongoDB無法提供可靠性儲存資料,作者只是簡單提供MongoDB教學,還請各位想嘗試MongoDB的開發者先收集mongoDB的優缺點,再仔細想想自已的專案是否適用mongoDB

五、文獻參考


2014年12月18日 星期四

使用FireFox web os 開發跨平台APP

如果身為APP開發人員就算不會寫android ios 也可以開發跨平台APP,目前主流的APP的跨平台是PhoneGapIonic,但是PhoneGapIonic在速度上仍無法戰勝原生APP,讓不少人選擇重新用原生程式(JAVAObject C),但是瀏覽器fireFox(老大哥)提供了不一樣的選擇,讓只會寫Web的開發人員也可以開發出APP(速度上加快了不少喔…)

步驟1:前置條件
l   已經安裝過node.js zip/unzipjavajdk

l   設定環境
1.    設定環境變數JAVA_HOME:  javaJDK的路徑
2.    下指令安裝 mozilla-apk-cli , 它是用來編譯成為androidapk重要工具
npm install mozilla-apk-cli

步驟2: 瞭解火狐(firefox)APP 架構 和設定檔

主目錄:\ manifest.webapp (APP的設定檔,名稱不能更改)
      :\index.html
      :\css 資料夾
      :\javaScript 資料夾
      :\images 資料夾

manifest.webapp
{
"name": "My App",     //安裝APP的名稱
"description": "blah",   //APP的功能說明
"launch_path": "/index.html",  //啟動APP的首頁
"icons": {
"128":"/images/g-icon.jpg"   //APPIcon (目前有60,128, 512) ,至少有三種icon 尺寸
},
"developer": {
"name": "Richard Sueselbeck" //APP的開發者
},
"default_locale": "en" //APP的預設語言
}

步驟3: 引用jQueryjQueryMobile 函式庫

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />

提示:如果沒有網路也能使用的話, 建議還是安裝離線版的JQueryjQueryMobiel 函式庫, FireFox OS 也有支援jQueryMobile喔。

步驟4: 可以使用火狐模擬器來模擬Android 的樣式

開啟選單à 開發者























選擇 Firefox OS Simulator



















點選add Directoryà 開啟視窗
























l   選擇檔案: manifest.webApp 開啟舊檔
l   啟動模擬器: 顯示running 的字樣(啟動成功)

點選refresh 即可重新刷新更改後的結果
























步驟5: 如何部署火狐的APP




l  使用命令模式 Mozilla-apk-cli ./程式所在目錄 filename.apk

大功告成~可以直接下戴APK到手機上,直接感受firefox 的威力吧!

PS: 雖然很方便,速度也夠快…  但手機一定要裝Firefox,雖然Firefox仍在測試階段中… 不過未來的它一定更完善。

如果有錯誤的地方~歡迎各位先進給予後輩指導…  謝謝

參考文獻: