DBAtlas · 数据库运维图谱

48 NamespaceExists: Namespace (collection) already exists(命名空间(集合)已存在)

MongoDB

含义

要创建的集合(命名空间)已存在。MongoDB 报告它已存在,因此无需再用相同名称和选项创建新集合。

原因

试图用 createCollection 重新创建已存在的集合(可能带有不同选项);架构/初始化脚本运行了多次;或试图将已存在的名称重新定义为 capped 集合或带特殊选项的集合。

解决方法

通常可以安全忽略;它表示集合已存在。使初始化脚本幂等:创建前检查是否存在(db.getCollectionNames().includes('name'))。要更改选项,必须删除并重新创建集合(先备份数据):db.my_collection.drop() 然后 createCollection。

在 DBAtlas 中打开 →

同一数据库的其他条目