MongoDB唯一索引(unique:true)导致的问题

来源:互联网 发布:医学英文写作软件 编辑:程序博客网 时间:2024/06/10 00:23

最近在使用Vue + MongoDB + express 写一个项目。

之前使用mongoose 定义Schema的时候 先定义一个字段为unique(唯一索引),类似于:

const bookSchema = new mongoose.Schema({

      bookId: {type: String, unique: true}

});

这样的一个结构,然后后来经过测试后,即是创建好了相关数据以及集合等,发现这个字段不能使用唯一索引,然后就在这段代码中的unique删除了,然后继续运行,发现控制台一直报错 : [Mongoose E11000 duplicate key error index:] 百度了半天发现根本没什么卵的解决办法,然后我在一个国外论坛上看到一个解决:可能之前使用过唯一索引而没有清除干净。然后我就用数据库去查询该集合的索引果然还包含了之前定义的唯一索引,使用dropIndex()方法删除该索引即可。

总结:如果之前在mongoose中使用过unique唯一索引的话,在使用该唯一索引创建了相关数据后再删除mongoose中的unique代码是无法完全清除该唯一索引的,需要使用mongodb手动清除该集合的唯一索引