MongoDB C# Driver 快速入门

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
        

以上是关于MongoDB C# Driver 快速入门的主要内容,如果未能解决你的问题,请参考以下文章

mongodb driver c#语法

MongoDb c# driver 2.0 查询样式

C# 操作mongodb 分组

C# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错

无法从 MongoDB.Driver for C# 访问 MongoCollection 类

使用 C# Driver 2.1.1 存储在 MongoDb 集合中的对象的最大大小是多少?