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(相差太多的版本可能写法不一样)
需要的引用: