QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

查看: 5011|回复: 0

[C#/.NET] MongoDB C# Driver 快速入门

[复制链接]

等级头衔

积分成就    金币 : 2861
   泡泡 : 1516
   精华 : 6
   在线时间 : 1328 小时
   最后登录 : 2026-7-17

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老活跃会员

联系方式
发表于 2021-7-30 08:22:55 来自手机 | 显示全部楼层 |阅读模式
      MongoDB的官方C#驱动可以通过这个链接得到。链接提供了.msi和.zip两种方式获取驱动dll文件。C#驱动的基本数据库连接,增删改查操作。在使用C#驱动的时候,要在工程中添加"MongoDB.Bson.dll"和"MongoDB.Driver.dll"的引用。同时要在代码中加入下面两个using语句。1 I4 _3 w/ E% v0 _
using MongoDB.Bson.Serialization.Conventions;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using System.Text;

4 w& M( d, T& D( N注册常用约定4 G9 A; R* `1 B0 B
  public static void RigisterConventions()
        {
            var pack = new ConventionPack();
            //元素名称序列化成驼峰形式
            pack.Add(new CamelCaseElementNameConvention());
            ConventionRegistry.Register("MyConventions", pack, x => true);
        }
* U% u0 t7 c1 z+ [* e5 D
初始化Mongo帮助类
" N7 v4 D9 `. g/ v- v3 g" b
  /// <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);
        }

% G$ y+ ]9 J1 a+ j* f/ u& c) z/ [获取集合/ {4 a0 w$ t! `% p4 v
   /// <summary>
        /// 获取集合
        /// </summary>
        /// <typeparam name="T">集合类型</typeparam>
        /// <param name="collectionName">集合名</param>
        /// <returns></returns>
        public IMongoCollection<T> GetCollection<T>(string collectionName)
        {
            return _database.GetCollection<T>(collectionName);
        }
4 T* B2 W" }- g. i7 n
完整代码/ e1 y. p8 y2 f! a! ~7 Z
/// <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();
        }

+ P" c5 U' j: I; z0 s/ p6 }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号|渝公网安备50010502503914号 )

GMT+8, 2026-9-19 04:02

Powered by paopaomj X3.5 © 2016-2025 sitemap

快速回复 返回顶部 返回列表