Sau đây là user
lược đồ của tôi trong user.js
mô hình -
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;
Đây là cách tôi đang sử dụng nó trong bộ điều khiển của mình -
var user = require('./../models/user.js');
Đây là cách tôi lưu nó trong 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"});
}
});
Lỗi -
{"name":"MongoError","code":11000,"err":"insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb.users.$email_1 dup key: { : null }"}
Tôi đã kiểm tra bộ sưu tập db và không có mục trùng lặp như vậy tồn tại, cho tôi biết những gì tôi đang làm sai?
FYI - req.body.email
và req.body.password
đang tìm nạp các giá trị.
Tôi cũng đã kiểm tra bài đăng này nhưng không có trợ giúp STACK LINK
Nếu tôi xóa hoàn toàn thì nó sẽ chèn tài liệu, nếu không, nó sẽ báo lỗi "Sao y" ngay cả khi tôi có một mục trong local.email
unique: false
không có bất kỳ tác động nào. Tôi nhận ra rằng trước tiên tôi phải bỏ cái bàn xuống và rồi nó sẽ hoạt động. Bạn có thể làm seomthing như db.whateverthecollection.drop({})
. Hãy cẩn thận, nó xóa bộ sưu tập.