Mongodb-使用C#Drivers實現增刪改查

來源:互聯網
上載者:User
1.回顧:上篇學習了Mongodb的基本命令學習 2.這篇將學習使用Mongodb的C# Drivers實現增刪改查 3.準備:     3.1 C# Drivers支援情況

                     

      面對現在的學習,我們還是使用 Version2.0版本,因為它支援全部的的.NET , 因為技術是越來越成熟的;


    3.2 .NET 平台對 Mongodb版本的支援情況如下 :全部支援

                     


     3.3 下載

            Mongdb C#驅動   和 確定你已經配置和安裝好你的Mongodb,若下載不下來的話,可以 點我下載。


4.使用        4.1 引用

        (1) 開啟vs2012及vs2012 版本以上 (.NET FrameWork4.5),建立項目,什麼項目都行,能夠測試就行,這裡         使用控制台應用程式,

        (2)引用 所有dll ;

                                                  4.2 串連mongdb 

        在串連之前,保證你 開啟了 mongodb 服務,若不記得怎麼開啟,請訪問 :點擊學習開啟服務


5. 建立MongoDb操作工具類          花了1個小時,寫的工具類,測試測試吧。封裝好了 mongdb串連 ,增刪改查和建立集合

<pre name="code" class="csharp">using MongoDB.Bson;using MongoDB.Driver;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MongoDBDemo1{   public class Connection    {         //建立資料庫連接       MongoServerSettings setting = new MongoServerSettings();       MongoServerAddress address =new MongoServerAddress("127.0.0.1", 27017);       MongoServer server = null;       string dbName=string.Empty;       /// <summary>       ///  得到串連       /// </summary>  public Connection()       {           setting.Server = address;           server = new MongoServer(setting);       }        /// <summary>        /// 建構函式  獲得 dbname        /// </summary>        /// <param name="dbname">資料庫名稱</param>        public Connection(string dbname)       {           this.dbName = dbname;           setting.Server = address;           server = new MongoServer(setting);       }   /// <summary>       /// 外部調用得到資料庫       /// </summary>       /// <param name="dbName"></param>       /// <returns></returns>       public MongoDatabase getMongoDataBase(string dbName)       {           return server.GetDatabase(dbName);              }       /// <summary>       /// 重載 得到資料庫       /// </summary>       /// <returns></returns>       public MongoDatabase getMongoDataBase()       {           return server.GetDatabase(dbName);              }       /// <summary>       /// 建立集合       /// </summary>       /// <param name="colName">集合名字</param>       /// <returns></returns>       public bool createCollection(string colName)        {           MongoDatabase db = this.getMongoDataBase();           CommandResult result= db.CreateCollection(colName);           if (result.Ok)           {               return true;           }           else            {               return false;           }       }       /// <summary>       /// 外部調用       /// </summary>       /// <param name="colName">集合名稱</param>       /// <param name="db">資料庫物件</param>       /// <returns></returns>       public MongoCollection<BsonDocument> getMongoColl(string colName,MongoDatabase db){          return db.GetCollection(colName);       }       /// <summary>       /// 內部使用       /// </summary>       /// <param name="colName">集合名稱</param>       /// <returns></returns>       public MongoCollection<BsonDocument> getMongoColl(string colName){          return this.getMongoDataBase().GetCollection(colName);       }         /// <summary>       /// 查詢操作        /// </summary>        /// <param name="colName">集合名詞</param>        /// <param name="query">條件</param>        /// <returns></returns>       public MongoCursor<BsonDocument> select(string colName,IMongoQuery query){           MongoCollection<BsonDocument> mcoll=getMongoColl(colName);           try           {               if (query == null)               {                   return mcoll.FindAll();               }               else               {                   return mcoll.Find(query);               }           }           finally {               this.mongoClose();           }                  }       /// <summary>       /// 增加操作       /// </summary>       /// <param name="colName">集合名稱</param>       /// <param name="bson">單條資料</param>       /// <returns></returns>       public bool insert(string colName,BsonDocument bson)        {           MongoCollection<BsonDocument> mcoll = getMongoColl(colName);           try           {               mcoll.Insert(bson);               return true;           }           catch           {               return false;           }           finally {               this.mongoClose();           }       }       /// <summary>       /// 增加多條       /// </summary>       /// <param name="colName">集合名稱</param>       /// <param name="bsonlist">資料集合</param>       /// <returns></returns>       public bool insert(string colName, List<BsonDocument> bsonlist)       {           MongoCollection<BsonDocument> mcoll = getMongoColl(colName);           try           {               foreach (BsonDocument bson in bsonlist)               {                   mcoll.Insert(bson);               }               return true;           }           catch           {               return false;           }           finally {               this.mongoClose();                      }       }       /// <summary>       /// 修改操作       /// </summary>       /// <param name="colName">集合名稱</param>       /// <param name="query">條件</param>       /// <param name="upd">修改的內容</param>       /// <returns></returns>       public bool update(string colName, IMongoQuery query,IMongoUpdate upd)       {           MongoCollection<BsonDocument> mcoll = getMongoColl(colName);           try           {               mcoll.Update(query, upd);               return true;           }           catch           {               return false;           }           finally {               this.mongoClose();           }       }       /// <summary>       /// 刪除操作       /// </summary>       /// <param name="cloName">集合名稱</param>       /// <param name="query">條件</param>       /// <param name="flag">是否為0 ,為0 則刪除 滿足條件的全部資訊</param>       /// <returns>false/true</returns>       public bool delete(string cloName, IMongoQuery query,int flag) {           MongoCollection<BsonDocument> mcol = this.getMongoColl(cloName);           try           {               if (flag == 0)               {                   mcol.Remove(query, RemoveFlags.None);               }               else               {                   mcol.Remove(query, RemoveFlags.Single);               }               return true;           }           catch           {               return false;           }           finally {               this.mongoClose();           }       }       /// <summary>       /// 關閉串連       /// </summary>       public void mongoClose(){         server.Disconnect();       }       }}  


 

6.實現增刪改查   6.1 瞭解      如果你看前面的在命令列下操作mongodb的話,就開始6.3吧。     6.2 建立串連          執行個體化 串連類,聲明資料庫名,和集合名。
            string dbname = "student";            string colName = "yuan";            Connection conn = new Connection(dbname);
     6.3 建立集合       調用建立方法
         bool type= conn.createCollection(colName);            if (type)            {                Console.WriteLine("建立成功。");            }            else             {                Console.WriteLine("建立失敗。");            }            Console.ReadKey();

  6.4 插入單條資訊
      BsonDocument bson = new BsonDocument("name","csdn");            bool type= conn.insert(colName, bson);            if (type)            {                Console.WriteLine("增加資料成功。");            }            else            {                Console.WriteLine("增加資料成功失敗。");            }

  6.5 插入多條資訊
  Dictionary<string,string> dic=new Dictionary<string,string>();            dic.Add("name","ming");            dic.Add("age","23");            dic.Add("collage","hpu");            dic.Add("sno","31120907");            Dictionary<string, string> dic1 = new Dictionary<string, string>();            dic1.Add("name", "zhuo");            dic1.Add("age", "10");            dic1.Add("collage", "hpu");            dic1.Add("sno", "31120908");            List<BsonDocument> list = new List<BsonDocument>() {               new BsonDocument(dic),              new BsonDocument(dic1)            };            bool type=conn.insert(colName, list);            if (type)            {                Console.WriteLine("增加資料成功。");            }            else            {                Console.WriteLine("增加資料成功失敗。");            }            Console.ReadKey();

  6.6 簡單查詢
     MongoCursor<BsonDocument> cursor = conn.select(colName, null);            foreach (BsonDocument bson in cursor)            {                Console.WriteLine(bson.ToString());            }            Console.ReadKey();

   結果如下:                         
   6.7 條件查詢
    //條件查詢            QueryDocument query = new QueryDocument("collage", "hpu");            MongoCursor<BsonDocument> cursor = conn.select(colName, query);            foreach (BsonDocument bson in cursor)            {                Console.WriteLine(bson.ToString());            }            Console.ReadKey();

      結果如下:                         

     6.8 修改操作
    QueryDocument query = new QueryDocument("name", "zhuo");            Dictionary<string, string> dic1 = new Dictionary<string, string>();            dic1.Add("name", "zhuo");            dic1.Add("age", "23");            dic1.Add("collage", "hpu");            dic1.Add("sno", "31120908");            UpdateDocument upd = new UpdateDocument(dic1);            bool type = conn.update(colName, query, upd);            if (type)            {                Console.WriteLine("修改資料成功。");            }            else            {                Console.WriteLine("修改資料失敗。");            }            //查看修改資訊            QueryDocument query1 = new QueryDocument("name", "zhuo");            MongoCursor<BsonDocument> cursor = conn.select(colName, query1);            foreach (BsonDocument bson in cursor)            {                Console.WriteLine(bson.ToString());            }            Console.ReadKey();

  結果如下:                      
    6.9 刪除操作 
            //先查詢下全部            Console.WriteLine("我是全部");            MongoCursor<BsonDocument> cursor = conn.select(colName, null);            foreach (BsonDocument bson in cursor)            {                Console.WriteLine(bson.ToString());            }            //刪除age等於23的            QueryDocument query = new QueryDocument("age","23");            //第三個參數 為0時刪除滿足條件的所有,為其他數字是,僅刪除1條            bool type=conn.delete(colName, query, 1);            Console.WriteLine("我是刪除後的。");            MongoCursor<BsonDocument> cursor1 = conn.select(colName, null);            foreach (BsonDocument bson in cursor1)            {                Console.WriteLine(bson.ToString());            }

  效果圖如下:

                               


 7.總結 :這裡僅僅示範了簡單的增刪改查,後面,大量的條件查詢,還行練習  8.   demo 下載

    下篇 將學習 JAVA Driver的使用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.