MongoDB——增刪查改

來源:互聯網
上載者:User

MongoDB驅動種類介紹

    1.  MongoDB官方驅動:mongo-csharp-driver,:https://github.com/mongodb/mongo-csharp-driver/downloads

    2. 第三方驅動samus,這是一款使用使用較多的驅動,更新頻率比較快,samus驅動除了支援一般形式的操作之外,還支援Linq 和Lambda 運算式。:https://github.com/samus/mongodb-csharp。
兩個mongodb驅動對mongodb資料庫的操作流程基本相同,只不過在實現方式上有所差異,如samus驅動除了支援一般的形式操作之外,還支援Linq和Lambda表達方式。

使用MongoDB官方驅動操作資料庫    解壓縮包得到如下兩個檔案:
   MongoDB.Bson.dll              :序列化、Json相關

   MongoDB.Driver.dll             :mongodb驅動

   添加引用,將上面兩個DLL引入到項目裡面    向代碼中引入命名空間
using MongoDB.Bson;using MongoDB.Driver;

   獲得資料庫連接服務
string  connectionString  =   " mongodb://localhost " ; //mongodb://[username:password@]hostname[:port][/[database][?options]]MongoServer server  =  MongoServer.Create(connectionString);//  串連到一個MongoServer上

   獲得指定資料庫物件引用
MongoDatabase database = server.GetDatabase("test"); // "test" 是資料庫名稱


   獲得指定集合,如果資料庫中沒有,則會建立一個
MongoCollection col = db.GetCollection("Users");//Users集合名

   插入資料到資料庫
public void Insert(){    //建立資料庫連結MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    //獲得資料庫testMongoDatabase db = server.GetDatabase(dbName);    Users users = new Users();    users.Name = "test";    users.Sex = "man";    //獲得Users集合,如果資料庫中沒有,先建立一個MongoCollection col = db.GetCollection("Users");    //執行插入操作col.Insert<Users>(users);}

   更新資料
 
public void Update(){    //建立資料庫連結MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    //獲得資料庫testMongoDatabase db = server.GetDatabase(dbName);    //擷取Users集合MongoCollection col = db.GetCollection("Users");    //定義擷取“Name”值為“test”的查詢條件var query = new QueryDocument { { "Name", "test" } };    //定義更新文檔var update = new UpdateDocument { { "$set", new QueryDocument { { "Sex", "wowen" } } } };    //執行更新操作col.Update(query, update);}

   刪除資料
 
public void Delete(){    //建立資料庫連結MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    //獲得資料庫testMongoDatabase db = server.GetDatabase(dbName);    //擷取Users集合MongoCollection col = db.GetCollection("Users");    //定義擷取“Name”值為“test”的查詢條件var query = new QueryDocument { { "Name", "test" } };    //執行刪除操作col.Remove(query);}
 
   查詢資料

public void Query(){    //建立資料庫連結MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    //獲得資料庫testMongoDatabase db = server.GetDatabase(dbName);    //擷取Users集合MongoCollection col = db.GetCollection("Users");    //定義擷取“Name”值為“test”的查詢條件var query = new QueryDocument { { "Name", "test" } };    //查詢全部集合裡的資料var result1 = col.FindAllAs<Users>();    //查詢指定查詢條件的第一條資料,查詢條件可預設。var result2 = col.FindOneAs<Users>();    //查詢指定查詢條件的全部資料var result3 = col.FindAs<Users>(query);}

總結     有兩種使用集合的方法:使用 BsonDocument 物件模型、 使用自己的實體類。本文主要介紹 使用實體。 如果資料格式很隨意,很難或不可能定義成實體類的話,那就使用 BsonDocument 物件模型。由於使用自己的實體類更容易得多,並且確定使用實體, 你的實體類必須有以下要求:具有無參建構函式 , 對於要儲存在資料庫裡的資料,需定義公用的讀/寫欄位或屬性。如果實體類將作為根級文檔,那它必須包含一個Id欄位或屬性(通常命名為“Id”,即使有需要你可以重寫它)。通常Id的類型為ObjectId。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.