C#(.NET framework)使用单例连接MongoDB

using log4net;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace SeamlessPipe.Docking.Utils
{
    public class MongoTool
    {
        protected static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

        private static MongoTool client = null;
        private static IMongoDatabase db = null;
        public static IMongoDatabase getClient()
        {
            if (client == null)
            {
                client = new MongoTool();
                
            }
            return db;
        }

        private MongoTool()
        {
            string connString = @"mongodb://(ipdizhi):(端口)/(数据库名)";
            MongoUrlBuilder url = new MongoUrlBuilder(connString);
            MongoClientSettings settings = new MongoClientSettings();
            IMongoClient client = new MongoClient(url.ToMongoUrl());
            
            db = client.GetDatabase(url.DatabaseName);

            //TimeSpan time = new TimeSpan(0, 1, 0);
            //settings.MaxConnectionIdleTime = time;

            //Console.WriteLine("最大连接空闲时间{0};",settings.MaxConnectionIdleTime);
            //Console.WriteLine("最大连接生存时间{0};",settings.MinConnectionPoolSize);
            //Console.WriteLine("最大连接池{0};",settings.MaxConnectionPoolSize);
            //Console.WriteLine("最小连接池{0};",settings.MinConnectionPoolSize);
            //Console.WriteLine("服务器选择超时{0};", settings.ServerSelectionTimeout);
            //Console.WriteLine("心跳间隔{0};", settings.HeartbeatInterval);
            //Console.WriteLine("心跳超时{0};", settings.HeartbeatTimeout);




            Logger.DebugFormat("MongoDB数据库连接成功!!!");
        }

    }
}

到这使用单例创建了Mongo的连接,使用的时候:

IMongoDatabase db1 = MongoTool.getClient();
IMongoCollection<ChemistryCom> collection = db1.GetCollection<ChemistryCom>("文档名(表名)");

db1为数据库连接,collection为连接到的mongo文档实例。

!!!注:这里用到的mongo引用版本为2.4.3(相差太多的版本可能写法不一样)
需要的引用:
需要的引用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值