2012-03-30 384 views
1

如何在mongodb分片中重命名集合?因为我在我的 生产服务器上尝试过,它只会为您的引用引发以下错误。在分片中的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分片中不可能,请分享您的建议或以其他方式解决此问题。

请提出我们需要进一步采取的措施?

+1

对于初学者,去和接受一些以前的答案:) – 2012-03-30 06:54:45

+1

确实。不打扰回答这个问题。 – 2012-03-30 07:59:18

+0

它是否会减慢你的数据库太多以将值添加到现有的集合?这是你测试过的东西,还是只是害怕它太多了? – Ben 2012-03-30 21:35:25

回答

1

没有办法重命名分片集合。

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

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