4

この条件付き更新を 1 つの db 呼び出しのみ、つまり のみを使用して行うより良い方法はありuser.updateますか?

user.findOne({ fbPsid: sender }, 'referal', function (err, res) {
    if (res.referal.length < 5 ) { 
        user.update(
            { fbPsid: sender },
            { 
                $set: { status: { state: -11 }  },
                $push: {
                    "referal": {
                        name: '',
                        phonenumber: '',
                        email: ''
                    }
                }
            }, function (err, res){}
        );
    } else {
        sendTextMessage(sender, "You have already completed  Your Five Referal!")
    }
}) 
4

2 に答える 2

0

あなたはこれを試すことができます

user.findOneAndUpdate({fbPsid:sender, $where:'this.referal.length < 5'}, 
    {$set:{status: {state: -11}},$push:{"referal":{name:'',phonenumber:'',email:''}}}, 
    {new:true},
    function(error, updateDoc) {
      if(error) {
        // handle error
      } else {
        // success action
      }
});
于 2016-07-13T09:03:33.283 に答える