標籤:ram export connect auth size format cat word ring
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 });
}
}
MongoDB 匯出、匯入表