MongoDB与c#(二)简单例子 使用1.7版本驱动
生活随笔
收集整理的這篇文章主要介紹了
MongoDB与c#(二)简单例子 使用1.7版本驱动
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//創建數據庫鏈接
在1.7的版本驅動中這樣寫是會報 MongoServer方法已過時的
??????????? //MongoServer server =? MongoDB.Driver.MongoServer.Create(strconn);
//帶有用戶名,密碼的如下寫法,不帶的則直接ip+端口就可以const string connectionString = "mongodb://city:liyang@192.168.1.211:27017";//得到一個客戶端對象的引用 GetServer()對服務器對象的引用 var Server = new MongoClient(connectionString).GetServer();//到一個數據庫對象的引用 var client = Server.GetDatabase("City");//對一組對象的引用var collection = client.GetCollection<citys>("citys");//插入一個 實體 for (int i = 0; i < dt.Rows.Count; i++){collection.Insert(new citys{province = dt.Rows[i][0].ToString(),city = dt.Rows[i][1].ToString(),county = dt.Rows[i][2].ToString(),areacode = "0" + dt.Rows[i][3].ToString(),postalcode = dt.Rows[i][3].ToString()});}
以下是git上的幫助文檔 地址是:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
1 將一個引用添加到c#司機dll 2 3 右鍵單擊 引用 文件夾在Visual Studio的解決方案 探險家和選擇 添加 參考…… 。 導航到文件夾 c#驅動程序dll被安裝并添加一個引用以下 dll: 4 5 MongoDB.Bson.dll 6 MongoDB.Driver.dll 7 8 作為一種替代方法可以使用 NuGet 包管理器添加c# 驅動程序包來您的解決方案。 9 添加所需的 使用 語句 10 11 作為一個最低需要使用語句如下: 12 13 using MongoDB.Bson; 14 using MongoDB.Driver; 15 16 此外,您會經常添加一個或多個使用 聲明: 17 18 using MongoDB.Driver.Builders; 19 using MongoDB.Driver.GridFS; 20 using MongoDB.Driver.Linq; 21 22 還有其他名稱空間,只會在特殊的需要 用例。 23 得到一個客戶端對象的引用 24 25 最簡單的方法獲得一個客戶對象的引用是使用 連接字符串: 26 27 var connectionString = "mongodb://localhost"; 28 var client = new MongoClient(connectionString); 29 30 如果你想將客戶端對象存儲在一個全局變量。 MongoClient 是線程安全的。 31 對服務器對象的引用 32 33 要從客戶端到服務器對象的引用對象,寫 這樣的: 34 35 var server = client.GetServer(); 36 37 到一個數據庫對象的引用 38 39 去到一個數據庫對象的引用從服務器對象,寫 這樣的: 40 41 var database = server.GetDatabase("test"); // "test" is the name of the database 42 43 如果您使用多個數據庫,調用 GetDatabase 再次為每個 您想要使用數據庫。 44 BsonDocument 對象模型與您自己的域類 45 46 有兩種方法可以處理集合: 47 48 使用 BsonDocument 對象模型 49 使用自己的域類 50 51 您將使用 BsonDocument 當數據對象模型 工作是如此的自由形式,它將是困難的或不可能的 定義的域類。 52 53 因為它是如此容易使用自己的域類 快速啟動將假設你要這樣做。 c#驅動程序 提供,他們可以處理您的域類: 54 55 有一個無參數的構造函數 56 定義公共讀/寫數據的字段或屬性 存儲在數據庫中 57 58 這些需求在本質上是相同的。net的實施 XmlSerializer。 59 60 此外,如果您的域類將被用作根 文檔必須包含一個 ID 字段或屬性(通常是命名 ID 盡管你可以覆蓋,如果必要)。 通常情況下, ID 將類型的 ObjectId ,但沒有限制的類型 的成員。 61 62 考慮下面的類定義: 63 64 public class Entity 65 { 66 public ObjectId Id { get; set; } 67 68 public string Name { get; set; } 69 } 70 71 對一組對象的引用 72 73 你會得到一個包含引用集合 實體 文件是這樣的: 74 75 // "entities" is the name of the collection 76 var collection = database.GetCollection<Entity>("entities"); 77 78 插入文檔 79 80 插入一個 實體 : 81 82 var entity = new Entity { Name = "Tom" }; 83 collection.Insert(entity); 84 var id = entity.Id; // Insert will set the Id if necessary (as it was in this example) 85 86 找到一個現有的文檔 87 88 在這個示例中,我們將讀回 實體 假設我們知道 ID 值: 89 90 var query = Query<Entity>.EQ(e => e.Id, id); 91 var entity = collection.FindOne(query); 92 93 查詢<單位> .EQ 使用 查詢< T > 構建器類來構建 查詢。 lambda表達式 E = > e.Id 是翻譯 _ID 。 這是 字段的名稱存儲在數據庫中。 94 95 請注意 96 97 通常的名稱字段在數據庫中是完全相同的 正如它的名字域類中的字段或屬性,但是 ID 是一個例外,映射到嗎 _ID 在數據庫中。 98 99 其他查詢操作符包括: GT , 一種 , 在 , LT , LTE , 附近 , 東北 , 和 , 或 (和其他一些更多 專業的)。 100 保存一個文檔 101 102 你可以保存更改現有的文檔如下: 103 104 entity.Name = "Dick"; 105 collection.Save(entity); 106 107 更新現有的文檔 108 109 另一種選擇 保存 是 更新 。 所不同的是, 保存 將整個文檔發送回服務器,但是 更新 發的變化。 例如: 110 111 var query = Query<Entity>.EQ(e => e.Id, id); 112 var update = Update<Entity>.Set(e => e.Name, "Harry"); // update modifiers 113 collection.Update(query, update); 114 115 下面的例子使用了 更新< T > 構建器輕松地構建更新 修飾符。 116 刪除一個現有的文檔 117 118 刪除一個現有的文檔集合你寫: 119 120 var query = Query<Entity>.EQ(e => e.Id, id); 121 collection.Remove(query); 122 123 你不需要調用連接或斷開連接 124 125 c#司機有一個連接池使用連接到服務器 效率。 不需要電話 連接 或 斷開 ; 讓司機照顧連接(調用 連接 是無害的,但是打電話呢 斷開 是不好的,因為它關閉 連接池中的連接)。 126 完整的示例程序 127 128 using System; 129 using System.Collections.Generic; 130 using System.Linq; 131 using System.Text; 132 133 using MongoDB.Bson; 134 using MongoDB.Driver; 135 using MongoDB.Driver.Builders; 136 137 namespace ConsoleApplication1 138 { 139 public class Entity 140 { 141 public ObjectId Id { get; set; } 142 public string Name { get; set; } 143 } 144 145 class Program 146 { 147 static void Main(string[] args) 148 { 149 var connectionString = "mongodb://localhost"; 150 var client = new MongoClient(connectionString); 151 var server = client.GetServer(); 152 var database = server.GetDatabase("test"); 153 var collection = database.GetCollection<Entity>("entities"); 154 155 var entity = new Entity { Name = "Tom" }; 156 collection.Insert(entity); 157 var id = entity.Id; 158 159 var query = Query<Entity>.EQ(e => e.Id, id); 160 entity = collection.FindOne(query); 161 162 entity.Name = "Dick"; 163 collection.Save(entity); 164 165 var update = Update<Entity>.Set(e => e.Name, "Harry"); 166 collection.Update(query, update); 167 168 collection.Remove(query); 169 } 170 } 171 }
在1.7的版本驅動中這樣寫是會報 MongoServer方法已過時的
??????????? //MongoServer server =? MongoDB.Driver.MongoServer.Create(strconn);
//帶有用戶名,密碼的如下寫法,不帶的則直接ip+端口就可以const string connectionString = "mongodb://city:liyang@192.168.1.211:27017";//得到一個客戶端對象的引用 GetServer()對服務器對象的引用 var Server = new MongoClient(connectionString).GetServer();//到一個數據庫對象的引用 var client = Server.GetDatabase("City");//對一組對象的引用var collection = client.GetCollection<citys>("citys");//插入一個 實體 for (int i = 0; i < dt.Rows.Count; i++){collection.Insert(new citys{province = dt.Rows[i][0].ToString(),city = dt.Rows[i][1].ToString(),county = dt.Rows[i][2].ToString(),areacode = "0" + dt.Rows[i][3].ToString(),postalcode = dt.Rows[i][3].ToString()});}
以下是git上的幫助文檔 地址是:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
1 將一個引用添加到c#司機dll 2 3 右鍵單擊 引用 文件夾在Visual Studio的解決方案 探險家和選擇 添加 參考…… 。 導航到文件夾 c#驅動程序dll被安裝并添加一個引用以下 dll: 4 5 MongoDB.Bson.dll 6 MongoDB.Driver.dll 7 8 作為一種替代方法可以使用 NuGet 包管理器添加c# 驅動程序包來您的解決方案。 9 添加所需的 使用 語句 10 11 作為一個最低需要使用語句如下: 12 13 using MongoDB.Bson; 14 using MongoDB.Driver; 15 16 此外,您會經常添加一個或多個使用 聲明: 17 18 using MongoDB.Driver.Builders; 19 using MongoDB.Driver.GridFS; 20 using MongoDB.Driver.Linq; 21 22 還有其他名稱空間,只會在特殊的需要 用例。 23 得到一個客戶端對象的引用 24 25 最簡單的方法獲得一個客戶對象的引用是使用 連接字符串: 26 27 var connectionString = "mongodb://localhost"; 28 var client = new MongoClient(connectionString); 29 30 如果你想將客戶端對象存儲在一個全局變量。 MongoClient 是線程安全的。 31 對服務器對象的引用 32 33 要從客戶端到服務器對象的引用對象,寫 這樣的: 34 35 var server = client.GetServer(); 36 37 到一個數據庫對象的引用 38 39 去到一個數據庫對象的引用從服務器對象,寫 這樣的: 40 41 var database = server.GetDatabase("test"); // "test" is the name of the database 42 43 如果您使用多個數據庫,調用 GetDatabase 再次為每個 您想要使用數據庫。 44 BsonDocument 對象模型與您自己的域類 45 46 有兩種方法可以處理集合: 47 48 使用 BsonDocument 對象模型 49 使用自己的域類 50 51 您將使用 BsonDocument 當數據對象模型 工作是如此的自由形式,它將是困難的或不可能的 定義的域類。 52 53 因為它是如此容易使用自己的域類 快速啟動將假設你要這樣做。 c#驅動程序 提供,他們可以處理您的域類: 54 55 有一個無參數的構造函數 56 定義公共讀/寫數據的字段或屬性 存儲在數據庫中 57 58 這些需求在本質上是相同的。net的實施 XmlSerializer。 59 60 此外,如果您的域類將被用作根 文檔必須包含一個 ID 字段或屬性(通常是命名 ID 盡管你可以覆蓋,如果必要)。 通常情況下, ID 將類型的 ObjectId ,但沒有限制的類型 的成員。 61 62 考慮下面的類定義: 63 64 public class Entity 65 { 66 public ObjectId Id { get; set; } 67 68 public string Name { get; set; } 69 } 70 71 對一組對象的引用 72 73 你會得到一個包含引用集合 實體 文件是這樣的: 74 75 // "entities" is the name of the collection 76 var collection = database.GetCollection<Entity>("entities"); 77 78 插入文檔 79 80 插入一個 實體 : 81 82 var entity = new Entity { Name = "Tom" }; 83 collection.Insert(entity); 84 var id = entity.Id; // Insert will set the Id if necessary (as it was in this example) 85 86 找到一個現有的文檔 87 88 在這個示例中,我們將讀回 實體 假設我們知道 ID 值: 89 90 var query = Query<Entity>.EQ(e => e.Id, id); 91 var entity = collection.FindOne(query); 92 93 查詢<單位> .EQ 使用 查詢< T > 構建器類來構建 查詢。 lambda表達式 E = > e.Id 是翻譯 _ID 。 這是 字段的名稱存儲在數據庫中。 94 95 請注意 96 97 通常的名稱字段在數據庫中是完全相同的 正如它的名字域類中的字段或屬性,但是 ID 是一個例外,映射到嗎 _ID 在數據庫中。 98 99 其他查詢操作符包括: GT , 一種 , 在 , LT , LTE , 附近 , 東北 , 和 , 或 (和其他一些更多 專業的)。 100 保存一個文檔 101 102 你可以保存更改現有的文檔如下: 103 104 entity.Name = "Dick"; 105 collection.Save(entity); 106 107 更新現有的文檔 108 109 另一種選擇 保存 是 更新 。 所不同的是, 保存 將整個文檔發送回服務器,但是 更新 發的變化。 例如: 110 111 var query = Query<Entity>.EQ(e => e.Id, id); 112 var update = Update<Entity>.Set(e => e.Name, "Harry"); // update modifiers 113 collection.Update(query, update); 114 115 下面的例子使用了 更新< T > 構建器輕松地構建更新 修飾符。 116 刪除一個現有的文檔 117 118 刪除一個現有的文檔集合你寫: 119 120 var query = Query<Entity>.EQ(e => e.Id, id); 121 collection.Remove(query); 122 123 你不需要調用連接或斷開連接 124 125 c#司機有一個連接池使用連接到服務器 效率。 不需要電話 連接 或 斷開 ; 讓司機照顧連接(調用 連接 是無害的,但是打電話呢 斷開 是不好的,因為它關閉 連接池中的連接)。 126 完整的示例程序 127 128 using System; 129 using System.Collections.Generic; 130 using System.Linq; 131 using System.Text; 132 133 using MongoDB.Bson; 134 using MongoDB.Driver; 135 using MongoDB.Driver.Builders; 136 137 namespace ConsoleApplication1 138 { 139 public class Entity 140 { 141 public ObjectId Id { get; set; } 142 public string Name { get; set; } 143 } 144 145 class Program 146 { 147 static void Main(string[] args) 148 { 149 var connectionString = "mongodb://localhost"; 150 var client = new MongoClient(connectionString); 151 var server = client.GetServer(); 152 var database = server.GetDatabase("test"); 153 var collection = database.GetCollection<Entity>("entities"); 154 155 var entity = new Entity { Name = "Tom" }; 156 collection.Insert(entity); 157 var id = entity.Id; 158 159 var query = Query<Entity>.EQ(e => e.Id, id); 160 entity = collection.FindOne(query); 161 162 entity.Name = "Dick"; 163 collection.Save(entity); 164 165 var update = Update<Entity>.Set(e => e.Name, "Harry"); 166 collection.Update(query, update); 167 168 collection.Remove(query); 169 } 170 } 171 }
?
?
轉載于:https://www.cnblogs.com/liyangLife/p/4201411.html
總結
以上是生活随笔為你收集整理的MongoDB与c#(二)简单例子 使用1.7版本驱动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据库题型大总结】名词解释总结
- 下一篇: Yii Model中添加默认搜索条件