傳統的關係數據庫一般由數據庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由(database)、集合(collection)、文檔對象(document)三個層次組成。MongoDB對於關係型數據庫裏的表,但是集合中沒有列、行和關係概念,這體現了模式自由的特點。
一、關於MongoDB的驅動
MongoDB支持多種語言的驅動,在此我們只介紹C#的驅動。僅C#驅動都有很多種,每種驅動的形式大致相同,但是細節各有千秋,因此代碼不能通用。比較常用的是官方驅動和samus驅動。samus驅動除了支持一般形式的操作之外,還支持linq方式操縱數據。各人比較喜歡這種方式。
官方驅動下載地址:點擊下載
samus驅動下載地址:點擊下載
本篇將從samus驅動入手講解數據庫訪問,國際慣例,存取“Hello World!”。
二、通過samus驅動實現HelloWorld存取
在進行下述操作之前,請先確定MongoDB服務已經開啓,不知道怎麼開啓服務,請看上篇。下載驅動,新建控制檯項目,並添加對MongoDB.dll的引用,如果你下載的是驅動源碼,編譯一遍引用生成的DLL即可。
基本代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
//鏈接字符串 //數據庫名 string
databaseName = "myDatabase" ; //集合名 string
collectionName = "myCollection" ; //定義Mongo服務 Mongo mongo =
new Mongo(connectionString); //獲取databaseName對應的數據庫,不存在則自動創建 MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName)
as MongoDatabase; //獲取collectionName對應的集合,不存在則自動創建 MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName)
as MongoCollection<Document>; //鏈接數據庫 mongo.Connect(); try {
//定義一個文檔對象,存入兩個鍵值對
Document doc =
new Document();
doc[ "ID" ] = 1;
doc[ "Msg" ] =
"Hello World!" ;
//將這個文檔對象插入集合
mongoCollection.Insert(doc);
//在集合中查找鍵值對爲ID=1的文檔對象
Document docFind = mongoCollection.FindOne( new
Document { { "ID" , 1 } });
//輸出查找到的文檔對象中鍵“Msg”對應的值,並輸出
Console.WriteLine(Convert.ToString(docFind[ "Msg" ])); } finally {
//關閉鏈接
mongo.Disconnect(); } |
運行程序,成功打印helloword。同時,我們打開數據文件夾,發現多了兩個文件“myDatabase.ns”和“myDatabase.0”。
三、小結
代碼下載:http://files.cnblogs.com/lipan/MongoDB_001.rar
本篇簡潔的講解了基本存取操作,下篇將結合MVC框架通過MongoDB實現model層單個集合的基本增刪查改操作。