मैं इसMongoError, अरे: E11000 नकल कुंजी त्रुटि
var User = new Schema({
"UserName": { type: String, required: true },
"Email": { type: String, required: true, unique: true },
"UserType": { type: String },
"Password": { type: String }
});
की तरह एक MongoDB स्कीमा मैं यह नेवला ODM का उपयोग कर NodeJS में किया जाता है एक नया उपयोगकर्ता बनाने के लिए कोशिश कर रहा हूँ है और यह है बनाने के लिए कोड:
controller.createUser = function (req, res) {
var user = new models.User({
"UserName": req.body.UserName.toLowerCase(),
"Email": req.body.Email.toLowerCase(),
"UserType": req.body.UserType.toLowerCase()
});
models.User.findOne({ 'Email': user.Email }, function (err, olduser) {
if (!err) {
if (olduser) {
res.send({ 'statusCode': 409, 'statusText': 'Email Already Exists' });
}
else if (!olduser) {
user.setPassword(req.body.Password);
user.save(function (err, done) {
if (!err) {
console.log(user);
res.send({ 'statusCode': 201, 'statusText': 'CREATED' });
}
else {
res.send({ 'Status code': 500, 'statusText': 'Internal Server Error' });
}
});
}
}
else {
res.send({ 'statusCode': 500, 'statusText': 'ERROR' });
}
});
};
नई उपयोगकर्ता बनाने के लिए, मैं गुण और मूल्यों दे रहा हूँ इस प्रकार है:
0,123,516 इस तरह{
"UserName": "ann",
"Email": "[email protected]",
"UserType": "normaluser",
"Password":"123456"
}
और मैं हो रही है त्रुटि: अद्वितीय constraint.Whenever साथ उपयोगकर्ता नाम
{"Status code":500,"statusText":"Internal Server Error","Error":{"name":"MongoError","err":"E11000 duplicate key error index: medinfo.users.$UserName_1 dup key: { : \"ann\" }","code":11000,"n":0,"connectionId":54,"ok":1}}
मैं समझता हूँ क्योंकि उपयोगकर्ता नाम दोहराया गया है इस त्रुटि है, लेकिन मैं सेट नहीं किया है मैं एक नई पंक्ति जोड़ना , मुझे अद्वितीय होने के लिए केवल ईमेल की आवश्यकता है, उपयोगकर्ता नाम को दोहराया जा सकता है यह प्राप्त करने के लिए कहां ??
शायद यह प्राथमिक कुंजी के रूप में पहले कॉलम का उपयोग कर रहा है? – ManseUK
यह एक शुद्ध अनुमान था - इस विषय में एक विशेषज्ञ होने के बजाय प्रश्न में अधिक दिलचस्पी है - क्षमा करें – ManseUK
मुझे ऐसा नहीं लगता है, पिछली वस्तु वाले उपयोगकर्ता नाम में एक "_id" विशेषता है, जो मुझे लगता है कि प्राथमिक है कुंजी। इस '{ "उपयोगकर्ता नाम": "एन", "ईमेल": "एन @ एफ।कॉम ", " उपयोगकर्ता टाइप ":" सामान्य उपयोगकर्ता "," पासवर्ड ":" 123456 " " _id ":" 5056d1c7e71c8a0c150003b3 " }' – dany