2013-01-06 50 views
0

我正在寫入大量數據到臨時集合中,完成後我想重命名它,但我只在運行時纔有名稱。MongoDB使用動態名稱重命名集合

重命名命令是:

db.some_collection_temp.renameCollection('some_collection'); 

我不知道some_collection名字,我有一個變量,所以我做的:

db[collName + '_temp'].renameCollection(collName); 

這並不工作

錯誤:TypeError: Cannot call method 'renameCollection' of undefined

+0

你使用什麼語言和驅動程序? – JohnnyHK

+0

我在NodeJS中使用MongoJS – pjnovas

回答

1

在MongoJS中,您可以撥打rename上的集合:

db.collection(collName + '_temp').rename(collName, function (err, collection){ 
    ... 
}); 
+0

真棒!,這工作得很好,我試圖用renameCollection方法而不是重命名hehe,你是否從文檔中取出它?,我會很感激鏈接,因爲我也必須發送一個「dropTarget」:true。謝謝! – pjnovas

+0

@pjnovas請記住,renameCollection不會複製索引,因此如果應用程序依賴它們,則必須重新創建它們。 – Alice