“ERRMSG”: “E11000重复键错误收集:reduxpress.users指数:address.email_1 DUP键:{:空}”
问题描述:
{
"status": "Error",
"typeof": "object",
"result": {
"code": 11000,
"index": 0,
"errmsg": "E11000 duplicate key error collection: reduxpress.users index: address.email_1 dup key: { : null }",
"op": {
"mobile": "(950) 874-8901 x8729",
"_id": "571b6e353731775404ac05b9",
"points": 0,
"created": "2016-04-23T12:44:37.111Z",
"roles": "customer",
"profileImageURL": "default.png",
"email": "[email protected]",
"password": "VF1WQZ72HEyS0a6",
"name": "Junior94",
"__v": 0
}
}
}
//用户模式 '使用严格的';“ERRMSG”: “E11000重复键错误收集:reduxpress.users指数:address.email_1 DUP键:{:空}”
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
crypto = require('crypto'),
validator = require('validator');
// generatePassword = require('generate-password'),
// owasp = require('owasp-password-strength-test');
var validateLocalStrategyProperty = function(property) {
return (property.length);
};
var validateLocalStrategyEmail = function(email) {
return (validator.isEmail(email));
};
var UserSchema = new Schema({
name: {
type: String,
trim: true,
default: '',
validate: [validateLocalStrategyProperty,
'Please fill in your first name'
]
},
password: {
type: String,
default: ''
},
email: {
type: String,
unique: true,
lowercase: true,
trim: true,
default: '',
match: /.+\@.+\..+/,
validate: [validateLocalStrategyEmail,
'Please fill a valid email address'
]
},
mobile: {
type: String,
// unique: true,
required: [true, 'User phone is required'],
trim: true
},
profileImageURL: {
type: String,
default: 'default.png'
},
roles: {
type: String,
enum: ['user', 'admin', 'shop manager', 'customer',
'operator'
],
default: ['customer'],
required: 'Please provide at least one role'
},
lastLogout: {
type: Date
},
created: {
type: Date,
default: Date.now
},
resetPasswordToken: {
type: String
},
resetPasswordExpires: {
type: Date
},
points: {
type: Number,
default: 0
}
});
module.exports = mongoose.model('User',UserSchema);
我试图用摊贩包保存用户生成的数据,但我得到这个错误我没有在任何database.can重复的电子邮件妳告诉我什么是错误。我尝试不同的事情,但没有得到任何结果
答
提交您的JSON文件的email
是有超过null
值和提交的email
也注意到收录申请,也可以指定本场unique
这扔exceeption
首先删除索引电子邮件领域这样
db.users.dropIndex({ "email": 1 })
,如果你需要归档的电子邮件指数和申请必须有运动成为空电子邮件
然后创建sparse index
这样
db.users.createIndex({ "email": 1 }, { sparse: true })
超过知识sparse index
是在这里:https://docs.mongodb.org/manual/core/index-sparse/
这是因为数据库的现有索引,请参阅http://*.com/questions/17114851/mongo -id场,重复键错误 –