You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB重命名集合报source namespace does not exist(code26)如何解决

故障原因

执行无参数的db.currentName.renameCollection()时,MongoDB会将重命名目标参数解析为undefined,多数版本会直接将原集合重命名为空字符串这类特殊非法名称,原currentName对应的集合实际已不存在,因此后续操作返回source namespace does not exist, code 26错误。

解决步骤
  • 第一步:查询当前数据库下所有集合的完整元信息,找到被错误重命名的集合
    执行命令:
    db.getCollectionInfos()
    
    返回结果中找到原来对应currentName数据的集合,通常名称字段为""(空字符串)或带undefined标识的特殊名称。
  • 第二步:使用getCollection方法读取特殊名称的集合,执行正确重命名操作
    假设查到的错误名称是空字符串,要重命名为newName,执行命令:
    db.getCollection("").renameCollection("newName")
    
    如果目标集合newName已经存在,需要覆盖的话追加true参数即可:
    db.getCollection("").renameCollection("newName", true)
    
  • 特殊场景处理:如果是分片集群的分片集合,不支持renameCollection操作,可通过mongodump导出原集合数据,再用mongorestore导入到新名称集合,验证数据一致后删除旧集合即可。
验证操作

执行show collections确认newName集合已存在,随机查询几条数据确认数据完整即可。

内容的提问来源于stack exchange,提问作者Normajean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 21:06:08