ต่อไปนี้เป็นuser
สคีมาของฉันในuser.js
แบบ -
var userSchema = new mongoose.Schema({
local: {
name: { type: String },
email : { type: String, require: true, unique: true },
password: { type: String, require:true },
},
facebook: {
id : { type: String },
token : { type: String },
email : { type: String },
name : { type: String }
}
});
var User = mongoose.model('User',userSchema);
module.exports = User;
นี่คือวิธีที่ฉันใช้มันในคอนโทรลเลอร์ของฉัน -
var user = require('./../models/user.js');
นี่คือวิธีที่ฉันบันทึกไว้ใน db -
user({'local.email' : req.body.email, 'local.password' : req.body.password}).save(function(err, result){
if(err)
res.send(err);
else {
console.log(result);
req.session.user = result;
res.send({"code":200,"message":"Record inserted successfully"});
}
});
ข้อผิดพลาด -
{"name":"MongoError","code":11000,"err":"insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb.users.$email_1 dup key: { : null }"}
ฉันตรวจสอบคอลเลกชัน db และไม่มีรายการที่ซ้ำกันอยู่ให้ฉันรู้ว่าฉันกำลังทำอะไรผิดหรือเปล่า?
FYI - req.body.email
และreq.body.password
กำลังดึงค่า
ฉันตรวจสอบโพสต์นี้ด้วย แต่ไม่ช่วยลิงก์ STACK
หากฉันลบอย่างสมบูรณ์มันจะแทรกเอกสารมิฉะนั้นจะเกิดข้อผิดพลาด "ซ้ำ" ข้อผิดพลาดแม้ว่าฉันจะมีรายการอยู่ในเครื่อง
unique: false
ไม่มีผลกระทบใด ๆ ฉันรู้ว่าฉันต้องวางโต๊ะก่อนจากนั้นก็ใช้งานได้ db.whateverthecollection.drop({})
คุณสามารถทำเช่น seomthing ระวังมันลบคอลเลกชัน