3

我们在 MongoDB 中重命名集合时遇到问题。

集合有一些相当长的索引名称,但这在集合的一般使用中不是问题。我们可以写入并查询它,索引是有效的(如果索引不存在,我们可以通过查询性能的下降来判断)。

但是,当我们重命名集合时,它会失败并显示以下消息:

MongoDB.Driver.MongoCommandException:命令'renameCollection'失败:异常:43的集合名称长度超过32的最大长度,允许索引名称(响应:{“errmsg”:“异常:43的集合名称长度超过32的最大长度, 允许索引名称", "code" : 16451, "ok" : 0.0 })

由于各种原因,我不会在这里讨论,重命名集合是我们工作流程的重要组成部分。

如果有人知道此问题的任何解决方法,将不胜感激。

谢谢。

更新:

这是数据库/集合/索引名称:

集合和索引名称

4

1 回答 1

0

我不知道是否可以接受可读性较低的索引名称,但您可以自己指定名称,这样它们就不会太长(为您的集合名称留出更多空间)。

db.someReallyLongCollectionName.ensureIndex({
    IncludeInLocationBasedSearch: 1,
    TotalBranches: 1,
    Categories: 1
}, { name: 'short1'});

您甚至可以用单个字符命名索引,并在其他地方对它们的含义有一些参考。

第二个参数ensureIndex是选项,这里有完整的文档:http: //docs.mongodb.org/manual/reference/method/db.collection.ensureIndex/

于 2013-10-09T21:15:15.307 回答