亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: MongoDB管理:如何重命名數(shù)據(jù)庫(kù) [打印本頁(yè)]

作者: lyhabc    時(shí)間: 2016-03-11 23:52
標(biāo)題: MongoDB管理:如何重命名數(shù)據(jù)庫(kù)
最近收到一個(gè)AliCloudDB for MongoDB的使用咨詢(xún)問(wèn)題,和大家分享一下,用戶(hù)想對(duì)database進(jìn)行重命名操作,但因?yàn)镸ongoDB并沒(méi)有提供renameDatabase的命令,用戶(hù)的想法是通過(guò)copydb來(lái)實(shí)現(xiàn),先將數(shù)據(jù)庫(kù)拷貝一份,然后刪除老的數(shù)據(jù)庫(kù),但由于DB里數(shù)據(jù)很多,copydb太耗時(shí),想知道是否有更好的方法?

雖然MongoDB沒(méi)有renameDatabase的命令,但提供了renameCollection的命令,這個(gè)命令并不是僅僅能修改collection的名字,同時(shí)也可以修改database。

db.adminCommand({renameCollection: "db1.test1", to: "db2.test2"})
上述命令實(shí)現(xiàn)了將db1下的test1,重命名為db2下的test2,這個(gè)命令只修改元數(shù)據(jù),開(kāi)銷(xiāo)很小,有了這個(gè)功能,要實(shí)現(xiàn)db1重命名為db2,只需要遍歷db1下所有的集合,重命名到db2下,就實(shí)現(xiàn)了renameDatabase的功能,寫(xiě)個(gè)js腳本能很快的實(shí)現(xiàn)這個(gè)功能.

var source = "source";
var dest = "dest";
var colls = db.getSiblingDB(source).getCollectionNames();
for (var i = 0; i < colls.length; i++) {
    var from = source + "." + colls[i];
    var to = dest + "." + colls[i];
    db.adminCommand({renameCollection: from, to: to});
}   




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2