2017-04-16 67 views
0

领域我的查询看起来像这样那么远,减去2个Sequelize

{ 
    where: { 
     id: event.pathParameters.picId 
    }, 
    'include': [{ 
     'model': db.reputations, 
     'where': { 
     'type': 'V_UP' 
     }, 
     'as': 'up_reputations', 
     'required': false 
    }, { 
     'model': db.reputations, 
     'where': { 
     'type': 'V_DONW' 
     }, 
     'as': 'down_reputations', 
     'required': false 
    }], 
    'attributes': [ 
     'id', 
     'title', 
     'data', 
     'createdAt', 
     [db.Sequelize.fn('count', db.Sequelize.col('up_reputations.type')), 'upVotes'], 
     [db.Sequelize.fn('count', db.Sequelize.col('down_reputations.type')), 'downVotes'] 
    ] 
} 

我需要的是最后一个属性,score,是upVotes - downVotes,但我不知道如何做到这一点。

回答

1

这应该工作:

'attributes': [ 
     'id', 
     'title', 
     'data', 
     'createdAt', 
     [db.Sequelize.fn('count', db.Sequelize.col('up_reputations.type')), 'upVotes'], 
     [db.Sequelize.fn('count', db.Sequelize.col('down_reputations.type')), 'downVotes'], 
     [db.Sequelize.literal('(upVotes - downVotes)', 'score')] 
]