c# 鏈結mongdb集群
一 了解mongdb
二 部署集群
三 c#鏈結mongdb 完成測試
c#鏈結mongdb 完成測試
此章節繼續我們上一章節將的我們開始用程式去鏈結mondbdb,大家都知道我們鏈結sqlserver其實用的是微軟自己寫的驅動。它已經封裝了一些物件,要我們去鏈結。但是我們鏈結mondbdb 同樣需要一些物件,這個mongdb官網有說明,可以自己去看看或者直接**我的這裡** 或者在第一章節有些夥伴們已經**好了
開發驅動資料夾 在 mongo-csharp-driver-master\mongo-csharp-driver-master\src src下面看到驅動專案這裡注意,我**是vs2012的專案,同學們可以根據自己的需要替換net framework 版本
開啟專案之後看到 如圖所示
編譯專案得到
mongodb.bson.dll
mongodb.driver.dll
建立專案,專案配置檔案如下
<?xml version="1.0" encoding="utf-8" ?>
loglevel 為自定義 日記級別 ,這個後面看我的**
logpath 為日誌路徑
mongreplicasetname 為副本集名稱,其實就是建立集群的時候取的名字。
mongoserveraddress 為集群機器ip列表,我這裡是自己的機器開了不同的埠來區別,你可以改成區域網ip
timeout 超時時間,預設貌似是3秒,我這裡設定60秒方便除錯
鏈結集群主要**
///
/// 取得資料庫連線字串
///
/// app.config檔案中appsettings節中 appsettings 對應的name
/// 資料庫連線字串
private static mongoserver getconnstr()
.\d.\d.\d):(?'port'\d)$";
string serverlist = configurationmanager.appsettings["mongoserveraddress"].trim().split('|');
foreach (string server in serverlist)
if (servers == null || servers.count < 1)
return null;
mongoclientsettings set = new mongoclientsettings();
set.servers = servers;
set.replicasetname = configurationmanager.appsettings["mongreplicasetname"].trim();//設定副本集名稱
int timeout =convertutil.parseint(configurationmanager.appsettings["timeout"].trim());//設定副本集名稱
set.connecttimeout = new timespan(0, 0, 0, timeout, 0);//設定超時時間為5秒
set.readpreference = new readpreference(readpreferencemode.secondarypreferred);
mongoclient client = new mongoclient(set);
return client.getserver();
}set.readpreference = new readpreference(readpreferencemode.secondarypreferred); 這句**可以根據自己需要修改。
其他沒有什麼注意的地方
資料插入mongdb**
///
/// mongdb 批量insert語句
///
/// 物件型別
/// 資料庫名稱
/// 表名稱
/// 物件
/// 返回錯誤
///
public static ienumerable execute(string _databasename, string _collectionname, ienumerable entitys, out string errormsg)
}catch (exception ex)
finally
//記錄日誌
if (!string.isnullorempty(errormsg))
return result;
}讀取mongdb資料**
///
/// 如果不清楚具體的數量,一般不要用這個函式。
///
///
///
///
public static list getall(string _databasename, string collectionname,out string errormsg)
}catch (exception ex )
//記錄日誌
if (!string.isnullorempty(errormsg))
return result;
} 以上是插入和讀取**。
後面執行效果如下
我這裡插入了10w條資料 人然後讀取10w條資料。效率比sqlserver是快很多。
c 程式設計實戰寶典 付強 C 開發實戰寶典pdf
c 開發實戰寶典 內容簡介 本書從初學者的角度講述使用visual studio2008開發環境結合c 語言進行程式開發應該掌握的各項技術,突出 基礎 全面 深入 同時就像書名所暗示的一樣,強調 實戰 效果。在介紹技術的同時,書中都會提供示例或稍大一些的例項,同時在各章的結尾安排有綜合應用,通過幾個...
c 專案實戰 qt動態鏈結庫的使用
window平台 利用qt編寫動態鏈結庫 呼叫動態庫 pro檔案加上 win32 libs l pwd lmodel includepath pwd dependpath pwd cpp呼叫中使用 include標頭檔案 ubuntu平台 動態庫專案會在build desktop debug目錄裡生...
c語言實戰開發 2019 11 13 Day1
講了如何寫部落格,怎麼賺錢 以及打字的正確方式 2 格式 介紹文章的內容 目的 思路 使用的技術 具體內容 結合。總結 也可以把總結放到具體內容前面 遇到什麼問題,怎麼解決 用markdown來書寫 語法 有提示 手型要正確 1 手指微微彎曲 2 大拇指靠在空格鍵 3 左右放在asdf 右手放在jk...