E11000重复密钥错误集合:ad-network.users索引:username_1 dup密钥:{:null}

时间:2019-01-24 06:55:53

标签: node.js mongodb express

我正在尝试使用不同的电话号码和电子邮件进行注册,但是第一次用户注册成功后却出现以下错误:

我的用户架构:

var UserSchema = new Schema({

name: {
    type: String,
    required: true
},
email: {
    type: String,
    unique: true,
    required: true
},
phone: {
    type: String,
    unique: true,
    required: true
},
type: {
    type: String,
},
admin_rights: {
    type: String
},
password: {
    type: String,
    required: true
}

});

有什么解决办法吗?

2 个答案:

答案 0 :(得分:0)

您有一个用于username_1字段的索引,但是您尝试为此字段设置null。因此mongo返回dup键:{:null}错误。在此字段上删除索引,然后使用此选项{sparse:true}

重新创建

稀疏索引仅包含具有索引字段的文档的条目,即使索引字段包含空值也是如此。

答案 1 :(得分:0)

我只是使用db.collectionName.drop()删除了我的收藏集。它对我有用,但这不是执行此操作的合适方法。我在与本地公司合作,考虑到存储在我的馆藏中的数据没有用,所以我放弃了。