我正在使用MEANJS创建一个应用程序。我有一个像这样定义的mongoose模式:
var UserdetailSchema = new Schema({
fullName: {
type: String,
trim: true
},
userName: {
type: String,
trim: true
},
mobile: {
type: String,
default: '',
trim: true
},
address: {
type: String,
trim: true
},
suburb: {
type: String
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
mongoose.model('Userdetail', UserdetailSchema);
我想要实现的是登录用户被重定向到编辑视图以更新其他信息,例如“移动,郊区,地址”等用户详细信息模式。
这是我的控制器。我已将默认的create()方法更改为以下内容:插入的第一步完成后,我将重定向到编辑它。
// Create new Userdetail for current user
function create(FullName,UserName) {
// Create new Userdetail object
var userdetail = new Userdetails ({
fullName: FullName,
userName: UserName
});
// Redirect after save
userdetail.$save(function(response) {
$location.path('userdetails/' + response._id+'/edit');
console.log(response._id);
// Clear form fields
//$scope.name = '';
}, function(errorResponse) {
console.log(errorResponse.data.message);
$scope.error = errorResponse.data.message;
});
};
要创建用户详细信息,我只插入fullName,并将userName作为第一步,稍后再更新。
问题是,它只允许我插入1个userdetails,如果我尝试插入另一个用户的另一个用户详细信息。虽然模式中没有名称,但它会给出“名称已存在”错误。
用于创建用户详细信息的服务器端代码
/**
* Create a Userdetail
*/
exports.create = function(req, res) {
var userdetail = new Userdetail(req.body);
userdetail.user = req.user;
userdetail.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(userdetail);
}
});
};
答案 0 :(得分:0)
我从shell中删除了我的集合“userdetails”并再次尝试插入后,我得到了它。我点了这个链接Mongodb- Add unique index on an existing collection。这更像是MongoDB问题。