Mongoose更新了第3个参数" UPSERT:TRUE"

时间:2015-08-06 20:30:51

标签: node.js mongodb mongoose

当我执行方法myUpdate时,mongoose会抛出错误:

" TypeError:object不是Query.update.callback中的函数"

为什么会发生,因为我使用upsert : true对象而不是回调传递第三个参数。想知道如何解决这个问题?

var userSchema = new Schema({
    email: { type: String, unique: true },
});

var User = mongoose.model('User', userSchema);

    function myUpdate(pUser) {

     var user = new User(pUser);
    user.update({ "username": user.username }, user, { upsert: true }, function (err) {
         //dostuff
        })
    }

    userSchema.pre('update', function (next) {
       var user = this;
        if (user.email) { 

        }
        else {

        }
    });

1 个答案:

答案 0 :(得分:0)

而不是这个

var user = new User(pUser);
user.update({ "username": user.username }, user, { upsert: true },          function (err) {
    //dostuff
})

使用此

var user = new User(pUser);
User.update({ "username": user.username }, user, { upsert: true },          function (err) {
    //dostuff
})

User.update