E11000 duplicate key error collection 解决

2025-01-10
JavaScript
51

背景

最近在使用 moongose 的过程中遇到一个报错

E11000 duplicate key error collection: fe.appversions index: name_1 dup key: { name:

经过查询之后,发现是我把name设置为索引了,不能有重复值

E11000 duplicate key.jpeg

修复

  1. 在 model 的 schema 中将 name 的 unique 字段去掉
name: {
  type: String,
  required: true,
  unique: true
}
name: {
  type: String,
  required: true
}
  1. 去掉之后,再保存,还是不行。说明mongodb已经将name设置为索引了,简单改schema已经不行,需要手动删一下索引
# 启动mongodb bash
mongosh

# 切换到工作数据集
use <workdb>

# 检查索引

— 检查索引

db.appversions.getIndexes()

输出

[
  { v: 2, key: { _id: 1 }, name: '_id_' },
  {
    v: 2,
    key: { name: 1 },
    name: 'name_1',
    background: true,
    unique: true
  }
]

可以发现,确实多了一个索引

  • 删除索引
db.appversions.dropIndex("name_1")

原文地址:https://webfem.com/post/duplicate,转载请注明出处