2013-01-06 49 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