Mongorestore:ns名称太长,最大大小为128

时间:2013-04-02 20:27:13

标签: mongodb mongorestore

我的Mongo数据库中有少量带有自定义名称的索引,因为它们中的字段太多而无法自动生成名称而不会出现“ns name too long”错误。

当我尝试使用mongorestore从备份恢复此数据库时 - 它失败并出现此错误(“ns名称太长,最大大小为128”)。似乎mongorestore尝试根据其内容生成索引名称,而不仅仅是恢复数据库中实际使用的名称。

到目前为止,我提出的唯一解决方案是使用带有--noIndexRestore的mongorestore并在之后手动重新创建所有索引,但这显然是一种可怕的方法。有没有更好的方法来解决这个问题?

我遇到MongoDB 2.4.1的这个问题。

感谢。

1 个答案:

答案 0 :(得分:1)

在重新创建转储期间存在的索引时,

mongorestore使用相同的名称。您可以在2.2及更高版本中查看这些名称在.metadata.json文件中的名称。在2.2之前,名称位于.system.indexes.bson文件中(它位于BSON中,因此您可以使用bsondump命令进行检查)。 / p>

我发现您可以获得此错误的一种方法是,如果要还原到不同名称的数据库或集合中,并且新名称比原始名称更长。如果使用原始数据库名称和集合名称,将使用原始索引名称(自定义或默认),然后它将是合法名称。