QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

查看: 3150|回复: 0

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

[复制链接]

等级头衔

积分成就    金币 : 2861
   泡泡 : 1516
   精华 : 6
   在线时间 : 1322 小时
   最后登录 : 2025-10-13

丰功伟绩

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

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

. @; f: _  M7 Y) a7 [* w- T, p$ K注册常用约定0 p2 t' M* c( t( O( N2 o# a
  public static void RigisterConventions()
        {
            var pack = new ConventionPack();
            //元素名称序列化成驼峰形式
            pack.Add(new CamelCaseElementNameConvention());
            ConventionRegistry.Register("MyConventions", pack, x => true);
        }
, Z4 [9 _3 e  ?6 h( q' a
初始化Mongo帮助类
2 E0 u! C0 W/ h0 W2 y3 K3 H
  /// <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);
        }

" M- b$ B, ?& ]; o) Q4 a! M获取集合
' r, }+ ?( ~! B
   /// <summary>
        /// 获取集合
        /// </summary>
        /// <typeparam name="T">集合类型</typeparam>
        /// <param name="collectionName">集合名</param>
        /// <returns></returns>
        public IMongoCollection<T> GetCollection<T>(string collectionName)
        {
            return _database.GetCollection<T>(collectionName);
        }
) i8 J! G7 D9 z% A. N
完整代码
% }% Q  C# ^8 q- {
/// <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();
        }

% t- R6 R2 K" [- [. z3 R& f
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-4 00:04

Powered by paopaomj X3.5 © 2016-2025 sitemap

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