【问题标题】:MongoDB Rename collection in Sharding分片中的 MongoDB 重命名集合
【发布时间】:2012-03-30 06:41:50
【问题描述】:

如何在 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 分片中无法实现,请分享您的建议或我们可以解决此问题的替代方法。

请建议我们必须进一步采取什么措施?

【问题讨论】:

  • 对于初学者,去接受一些以前的答案:)
  • 确实如此。懒得回答这个了。
  • 在现有集合中添加值是否会减慢您的数据库速度?这是你测试过的东西还是只是害怕它会太多?
  • 如果有人想要关注重命名分片集合的功能请求jira.mongodb.org/browse/SERVER-6063

标签: php mongodb mongoose sharding


【解决方案1】:

无法重命名分片集合。

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-04-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2018-12-15
      • 1970-01-01
      • 2021-07-26
      相关资源
      最近更新 更多