小卷的胡言亂語

隨心。隨興。隨喜。隨緣



使用c#連接mongodb雲端資料庫 - (一)簡介

這陣子研究了一下如何使用c#連接mongodb雲端資料庫,紀錄一下心得。
首先先從幾項工具開始介紹吧。

1、mlab


mlab官網

  • mongodb的雲端免費server服務
  • free的容量是0.5GB
  • 其他的雲端服務者:MongoDB Atlas(free:512MB)

mongodb為一open source的NoSQL資料庫,由key+value組成(類似c# Dictionary的概念),
結構類似JSON,是一種稱作BSON的結構;除雲端版外,亦有電腦版可下載至本機使用。
在mongodb中,一筆資料為document,資料表為collection,亦即由documents組成。
欄位為field,每一筆資料可以由一個至多個欄位組成(不一定每筆資料的欄位數相同)。
因mongodb為NoSQL資料庫,故建立資料表時可以不需先建立欄位,直接於資料新增、更新時指定即可。
本文記錄由c#連結雲端mongodb的服務,雲端資料庫利用mlab,需於mlab中註冊帳號後,建立資料庫(database)、資料表(table)、使用者(username)。

mlab註冊與新增資料庫

1.點選官網右上角[SIGN UP]
mongodb mlab registar

2.填寫註冊資訊
其中username為日後登入時會使用的帳號
mongodb mlab registar

3.新增資料庫(database)、資料表(table)、使用者(username)
註冊並登入後,看到[Create New]按鈕按下,即會出現輸入畫面以新增資料庫
mongodb mlab registar

(1)因只是實驗性使用,故選擇sandbox即可,是免費的。至於伺服器要放在誰身上,隨意選擇
mongodb mlab registar

(2)新增後使用者介面上會多出一筆資料,即為你剛建立的資料庫。
mongodb mlab registar

(3)建立好資料庫以後,請建立使用者
mongodb mlab registar

(4)回到使用者介面,看到上方區塊提供了連線字串(其中dbuser、dbpassword可以剛剛建立的使用者資訊填入),之後程式就能以此與資料庫做互動
mongodb mlab registar

2、robo3T


robo3T官網

  • mongodb的GUI manager,能檢視mongodb當中的資料(前身為robomongo)
  • 因於mlab中查看、尋找資料並不是那麼便利,故建議可以下載此工具以便查看資料庫內容。

官網當中找到[Download Robo 3T]的按鈕按下後,選擇作業系統後下載。有關此軟體如何使用可上網搜尋相關文章,此篇就不多做教學。
Robo 3T mongodb

3、c# driver


mongodb .net driver官網
在專案當中連接mongodb之前,最重要的就是下載c# driver。
於你的專案中開啟nuget管理工具後搜尋並下載MongoDB.Driver
注意[MongoDB.Driver]目前版本必須在.net4.5以上的環境才可執行。(請參考官方下載說明)

相關文件

官方文件對於基本使用的說明蠻清楚的,另因為mongodb .net driver舊版本與新版本差異頗大,
故建議有開發需求者,還是看官方文件吧,
網路上多數的教學文都是較舊版本driver,無法使用於新版driver。
以下說明一下傻露參考的幾份文件:

  • Quick Tour:
    所有最基本的需求,包含如何連線、資料的CRUD(增刪修查詢),都在這裡有介紹,如果不是使用太複雜的功能,在這個頁面當中都能查詢到。時間不多、要快速上手者可以從此份文件開始。
    另外,mongodb對於較龐大資料量的處理,也有非同步的處理方式(如此份文件有看到await開頭的寫法,即為非同步的處理)。若不需要非同步處理,採一般寫法即可。

  • Reference:
    如果需要再深入的了解,比如想知道如何結合LINQ做集合的處理、BSON到底是甚麼?在這個頁面中可以找到相關資訊。

  • API Documentation
    如果還有需要更進階的操作資料庫,而在上面兩份文件不敷需求時,
    例如想知道傳入的資料型態很複雜,key對應的資料是一個array,該如何操作?那麼請直接進入此頁面(即mongodb .net driver官網內的[API Documentation])。
    不過,這個頁面無提供相關範例可以參考,故可能需要花較多時間實驗。

以上紀錄一些基本會使用到的工具,下一篇則對實作做紀錄。

相關文章:
使用c#連接mongodb雲端資料庫 - (二)連接資料庫與資料新增
使用c#連接mongodb雲端資料庫 - (三)資料查詢