MongoDB C# Driver 快速入門

MongoDB的官方C#驅動可以通過這個鏈接得到。鏈接提供了.msi和.zip兩種方式獲取驅動dll文件。C#驅動的基本數據庫連接,增刪改查操作。在使用C#驅動的時候,要在工程中添加"MongoDB.Bson.dll"和"MongoDB.Driver.dll"的引用。同時要在代碼中加入下面兩個using語句。

using MongoDB.Bson.Serialization.Conventions;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using System.Text;

註冊常用約定

  public static void RigisterConventions()
        {
            var pack = new ConventionPack();
            //元素名稱序列化成駝峯形式
            pack.Add(new CamelCaseElementNameConvention());
            ConventionRegistry.Register("MyConventions", pack, x => true);
        }

初始化Mongo幫助類

   /// <summary>
        /// 初始化Mongo幫助類
        /// </summary>
        /// <param name="connectionString">連接字符串</param>
        /// <param name="dbName">數據庫名</param>
        public MongoHelper(string connectionString, string dbName)
        {
            _client = new MongoClient(connectionString);
            _database = _client.GetDatabase(dbName);
        }

獲取集合

   /// <summary>
        /// 獲取集合
        /// </summary>
        /// <typeparam name="T">集合類型</typeparam>
        /// <param name="collectionName">集合名</param>
        /// <returns></returns>
        public IMongoCollection<T> GetCollection<T>(string collectionName)
        {
            return _database.GetCollection<T>(collectionName);
        }

完整

 /// <summary>
    /// MongoDB訪問幫助類
    /// </summary>
    public class MongoHelper
    {
        private MongoClient _client;
        private IMongoDatabase _database;

        /// <summary>
        ///  註冊常用約定
        /// </summary>
        public static void RigisterConventions()
        {
            var pack = new ConventionPack();
            //元素名稱序列化成駝峯形式
            pack.Add(new CamelCaseElementNameConvention());
            ConventionRegistry.Register("MyConventions", pack, x => true);
        }

        /// <summary>
        /// 初始化Mongo幫助類
        /// </summary>
        /// <param name="connectionString">連接字符串</param>
        /// <param name="dbName">數據庫名</param>
        public MongoHelper(string connectionString, string dbName)
        {
            _client = new MongoClient(connectionString);
            _database = _client.GetDatabase(dbName);
        }

        /// <summary>
        /// 數據庫
        /// </summary>
        public IMongoDatabase Db => _database;

        /// <summary>
        /// 獲取集合
        /// </summary>
        /// <typeparam name="T">集合類型</typeparam>
        /// <param name="collectionName">集合名</param>
        /// <returns></returns>
        public IMongoCollection<T> GetCollection<T>(string collectionName)
        {
            return _database.GetCollection<T>(collectionName);
        }

        /// <summary>
        /// 獲取Queryable對象
        /// </summary>
        /// <typeparam name="T">對象類型</typeparam>
        /// <param name="collectionName">集合名</param>
        /// <returns></returns>
        public IMongoQueryable<T> GetQueryable<T>(string collectionName)
        {
            return GetCollection<T>(collectionName).AsQueryable();
        }

        /// <summary>
        /// 模糊查詢轉換特殊字符:正則表達式有以下特殊字符。需要轉義  * . ? + $ ^ [ ] ( ) { } | \ /
        /// 如:{"phone":/U9G\/XoDNo8ozbwbxal\+Qzg==/}
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string ChangeSpecialCharacter(string str)
        {
            if (string.IsNullOrEmpty(str))
                return str;
            StringBuilder retValue = new StringBuilder();
            string str1 = "*.?+$^[](){}|\\/";
            for (int i = 0; i < str.Length; i++)
            {
                string ss = str[i].ToString();
                if (str1.Contains(ss))
                {
                    ss = "\\" + ss;
                }
                retValue.Append(ss);
            }
            return retValue.ToString();
        }


本文分享自微信公衆號 - 一線碼農聊技術(dotnetfly)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章