arterli / CmsWing

一款基于Egg.js(为企业级框架和应用而生)、Sequelize和GraphQL,功能强大的(PC端,手机端和微信公众平台)电子商务平台及CMS建站系统
http://www.cmswing.com
Other
1.35k stars 450 forks source link

更新数据库记录代码的优化 #15

Closed wstygk closed 7 years ago

wstygk commented 7 years ago

更新一条记录的某个字段和自增某个字段可以在一条语句完成 例如 common/model/member.js的autoLogin中

    let data = {
        'last_login_time': new Date().valueOf(),
        'last_login_ip': _ip2int(ip),
    };
    let use = await this.where({id: user.id}).update(data);
    await this.where({id: user.id}).increment('login');

可改为

    let field = 'login';
    let data = {
      last_login_time: new Date().valueOf(),
      last_login_ip:_ip2int(ip),
      [field]: ['exp', `\`${field}\`+1`],
    };
    await this.where({ id: user.id }).update(data);