MongoDB在Sharding中重命名集合

时间:2012-03-30 06:41:51

标签: php mongodb mongoose sharding

如何在mongodb分片中重命名集合?因为我试过我的 生产服务器,它为您的引用抛出以下错误。

我的要求我们必须在现有集合上添加更多有价值的字段。但在生产中,我们无法破坏基于流量的收集,并且任何时候请求都来自成员。因此,我们计划将整个记录从sql填充到另一个集合中的mongo,然后重命名该集合并将其作为生产。我们的计划。但我们无法进一步发展。我们得到了错误。

db.clientdetails.renameCollection( "clientdetails_bkup" ); {
            "assertion" : "You can't rename a sharded collection",
            "assertionCode" : 13138,
            "errmsg" : "db assertion failure",
            "ok" : 0 }

如果mongodb分片中不可能,请分享您的建议或替代方法,我们可以解决此问题。

请建议我们必须采取哪些措施?

2 个答案:

答案 0 :(得分:1)

无法重命名分片集合。

您可以将所有文档复制到新集合中。

或者根据每周/期间日期创建多个集合,并将其用作当前日期。然后让您的应用程序始终按名称使用当前的名称,并在每个句点中断时更改名称。

答案 1 :(得分:-1)

这是MongoDB的最严重的限制之一。我们无法重命名分片集合。 Mongodb文档说:  分片集合不支持db.collection.renameCollection()。

在同样的情况下,我们创建了另一个临时集合,将数据加载到该临时集合中。删除现有的分片集合,并使用新名称创建新集合,然后再次将数据加载回新命名的集合中。这个过程非常