1
我想在ruby中使用MongoMapper重命名一個數據庫。 可以這樣做嗎? 任何替代黑客完成相同?如何在ruby中使用MongoMapper重命名數據庫?
我想在ruby中使用MongoMapper重命名一個數據庫。 可以這樣做嗎? 任何替代黑客完成相同?如何在ruby中使用MongoMapper重命名數據庫?
正如上面提到的其他堆棧溢出問題所述,MongoDB實際上並沒有能力重命名數據庫。但是,您可以複製然後刪除,但請注意這會導致重建索引。你不想爲大數據集做這件事。
蒙戈-紅寶石驅動器(以及大多數10gen的驅動程序)具有通過在任何DB對象實例DB#command方法的調用來執行任何MongoDB command的能力。
在Ruby驅動程序,你會做到以下幾點:這不正是上面的Ruby代碼確實在MongoDB中的較新版本存在的db.rename一個JS外殼幫手():
require 'mongo'
client = Mongo::MongoClient.new
db = client.db('admin')
db.command({:copydb => 1, :fromdb => oldname, :todb => newname})
client.drop_database(oldname)
更新。
function (newName) {
if(newName == this.getName() || newName.length === 0)
return;
this.copyDatabase(this.getName(), newName, "localhost");
this.dropDatabase();
db = this.getSiblingDB(newName);
}
除此之外,還有以下功能請求票據用於使db.rename()成爲第一類命令。請隨時注意此功能。
這應有助於:http://stackoverflow.com/questions/9201832/how-do-you-rename-a-mongodb-database – fmendez 2013-03-08 21:39:04
但有通過蒙戈Ruby驅動程序的方法嗎? – jayanth88 2013-03-08 23:58:09