这是我遇到的错误: MongoError insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.events.$name_1 dup key: { : "Event name" }
mongo说字段" _id"one_answers"名称"是索引。这是名称字段的条目。
我删除了此处给出的索引:mongoose-由:: 11000 e11000重复键错误索引引起?现在它可以很好地工作。但是,为什么这是一个索引?是否有自动设置为索引的字段?
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var eventSchema = new Schema({
name: {
type: String,
required: true
}
//other fields
});
eventSchema.index({ name: 0 });
mongoose.model('Event', eventSchema);
ps:我尝试使用eventSchema.index({ name: 0 });
删除索引,但似乎无需做任何事情。
mongodb默认情况下仅将 _id
设置为索引。
创建集合时,您会为字段 name
添加索引,例如此eventSchema.index({ name: 0 });
现在冷却Event
具有字段名称索引。
为了修复它,您可以做一些事情。
1)用@chridam建议的代码删除索引。不要忘记也从代码中删除eventSchema.index({ name: 0 });
。因为它将在下一个运行中再次创建索引。
2)从数据库中删除收集。删除此行eventSchema.index({ name: 0 });
。再次运行代码。现在收集将是witout索引。
3),也可以使name
索引变得不是唯一。
希望这会有所帮助。