傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)一般由數(shù)據(jù)庫(kù)(database)、表(table)、記錄(record)三個(gè)層次概念組成,MongoDB是由 (database)、集合(collection)、文檔對(duì)象(document)三個(gè)層次組成。MongoDB對(duì)于關(guān)系型數(shù)據(jù)庫(kù)里的表,但是集合中沒 有列、行和關(guān)系概念,這體現(xiàn)了模式自由的特點(diǎn)。
一、關(guān)于MongoDB的驅(qū)動(dòng)
MongoDB 支持多種語言的驅(qū)動(dòng),在此我們只介紹C#的驅(qū)動(dòng)。僅C#驅(qū)動(dòng)都有很多種,每種驅(qū)動(dòng)的形式大致相同,但是細(xì)節(jié)各有千秋,因此代碼不能通用。比較常用的是官方 驅(qū)動(dòng)和samus驅(qū)動(dòng)。samus驅(qū)動(dòng)除了支持一般形式的操作之外,還支持linq方式操縱數(shù)據(jù)。各人比較喜歡這種方式。
官方驅(qū)動(dòng)下載地址:點(diǎn)擊下載
samus驅(qū)動(dòng)下載地址:點(diǎn)擊下載
本篇將從samus驅(qū)動(dòng)入手講解數(shù)據(jù)庫(kù)訪問,國(guó)際慣例,存取“Hello World!”。
二、通過samus驅(qū)動(dòng)實(shí)現(xiàn)HelloWorld存取
在進(jìn)行下述操作之前,請(qǐng)先確定MongoDB服務(wù)已經(jīng)開啟,不知道怎么開啟服務(wù),請(qǐng)看上篇。下載驅(qū)動(dòng),新建控制臺(tái)項(xiàng)目,并添加對(duì)MongoDB.dll的引用,如果你下載的是驅(qū)動(dòng)源碼,編譯一遍引用生成的DLL即可。
基本代碼如下:
復(fù)制代碼 代碼如下:
//鏈接字符串
string connectionString = "mongodb://localhost";
//數(shù)據(jù)庫(kù)名
string databaseName = "myDatabase";
//集合名
string collectionName = "myCollection";
//定義Mongo服務(wù)
Mongo mongo = new Mongo(connectionString);
//獲取databaseName對(duì)應(yīng)的數(shù)據(jù)庫(kù),不存在則自動(dòng)創(chuàng)建
MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
//獲取collectionName對(duì)應(yīng)的集合,不存在則自動(dòng)創(chuàng)建
MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;
//鏈接數(shù)據(jù)庫(kù)
mongo.Connect();
try
{
//定義一個(gè)文檔對(duì)象,存入兩個(gè)鍵值對(duì)
Document doc = new Document();
doc["ID"] = 1;
doc["Msg"] = "Hello World!";
//將這個(gè)文檔對(duì)象插入集合
mongoCollection.Insert(doc);
//在集合中查找鍵值對(duì)為ID=1的文檔對(duì)象
Document docFind = mongoCollection.FindOne(new Document { { "ID", 1 } });
//輸出查找到的文檔對(duì)象中鍵“Msg”對(duì)應(yīng)的值,并輸出
Console.WriteLine(Convert.ToString(docFind["Msg"]));
}
finally
{
//關(guān)閉鏈接
mongo.Disconnect();
}
運(yùn)行程序,成功打印helloword。同時(shí),我們打開數(shù)據(jù)文件夾,發(fā)現(xiàn)多了兩個(gè)文件“myDatabase.ns”和“myDatabase.0”。
三、小結(jié)
代碼下載:
本篇簡(jiǎn)潔的講解了基本存取操作,下篇將結(jié)合MVC框架通過MongoDB實(shí)現(xiàn)model層單個(gè)集合的基本增刪查改操作。