7287370
mongoose中save函数我的理解是如果存在则更新,否则插入。但是现在显示_id冲突,无法解决。
Schema如下:
var UserSchema = new Schema({
username: { type: String },
nickname: { type: String },
password: { type: String },
email: { type: String },
access: { type: Number, default: 0},
}, { collection: 'User' });
mongoose.model('User', UserSchema);
然后在一个更新操作中每次find, modify, save,save过程会报错
{ [MongoError: E11000 duplicate key error index: test.User.$_id_ dup key: { : ObjectId('5362235c895105241d43c46e') }]
name: 'MongoError',
err: 'E11000 duplicate key error index: test.User.$_id_ dup key: { : ObjectId(\'5362235c895105241d43c46e\') }',
code: 11000,
n: 0,
connectionId: 1,
ok: 1 }
更新的代码是:
User.getByName({ username: _currentUser.username }, proxy.done(function(user) {
if (req.body['email']) user.email = req.body['email'];
user.save(function(err) {
if (err) {
console.log(err); //这里打印的就是上边的错误
}
});
proxy.emit('save');
}));
请问是什么问题造成的,我把collection remove掉还是不行。