var srcTbl = "20161226";
var destTbl = "20161226-bak";
方式一:
MongoClient client; MongoServer server; MongoDatabase db;
MongoClientSettings setting = new MongoClientSettings();
setting.MaxConnectionPoolSize = 1000; setting.MinConnectionPoolSize = 500;client = new MongoClient(mongodb);
server = client.GetServer();
db = server.GetDatabase(database);db.CreateCollection(destTbl);
db.GetCollection(srcTbl).FindAll().Foreach(doc => { db.GetCollection(destTbl).Insert(doc); // start to replace });方式二:
Mongo目录下需文件:
libeay32.dll
mongoexport.exe
mongoimport.exe
ssleay32.dll
/// <summary>
/// 导出数据库到文件 /// </summary> /// <param name="host">数据库地址</param> /// <param name="username">数据库用户名</param> /// <param name="password">数据库密码</param> /// <param name="port">数据库端口号</param> /// <param name="database">数据库名称</param> /// <param name="table">数据表名</param> /// <param name="filename">导出的文件</param> void Export(string host, string username, string password, int port, string database, string table, string filename) { try { string arguments = string.Format(@"--host {0} --username {1} --password {2} --authenticationDatabase admin --port {3} --db {4} --collection {5} --out ""{6}""", host, username, password, port, database, table, filename); string fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Mongo\mongoexport");Process p = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo { FileName = fileName, Arguments = arguments, CreateNoWindow = true, UseShellExecute = false }; p.StartInfo = startInfo; p.Start(); p.WaitForExit(); } catch (Exception ex) { log.Error("Export error", ex, "流量数据存储服务", "Export Mongo", "", new LogMsg() { Key = "file", Value = filename }); } } /// <summary> /// 文件导入到数据库 /// </summary> /// <param name="host">数据库地址</param> /// <param name="username">数据库用户名</param> /// <param name="password">数据库密码</param> /// <param name="port">数据库端口号</param> /// <param name="database">数据库名称</param> /// <param name="table">导入的数据表名</param> /// <param name="filename">导入的文件</param> void Import(string host, string username, string password, int port, string database, string table, string filename) { try { string arguments = string.Format(@"--host {0} --username {1} --password {2} --authenticationDatabase admin --port {3} --db {4} --collection {5} --file ""{6}""", host, username, password, port, database, table, filename); string fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Mongo\mongoimport"); Process p = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo { FileName = fileName, Arguments = arguments, CreateNoWindow = true, UseShellExecute = false }; p.StartInfo = startInfo; p.Start(); p.WaitForExit(); } catch (Exception ex) { log.Error("Import error", ex, "流量数据存储服务", "Import Mongo", "", new LogMsg() { Key = "table", Value = table }); } }