Sequelize:如何找到 Max 元素
Posted
技术标签:
【中文标题】Sequelize:如何找到 Max 元素【英文标题】:Sequelize: how to find a Max element 【发布时间】:2014-06-23 23:09:50 【问题描述】:我在形成 sequelize 查询时遇到问题:
我的本机查询是一些东西。
SELECT max(id),vehicleID FROM `vehicles` WHERE `vehicles`.`vsr_id`=342;
为此,我正在尝试构建类似这样的代码。
Vehicle.find( where: 'vsr_id': 342 , order : [sequelize.fn('max', sequelize.col('id'))] ).success(function(vehicles)
console.log("Something i got" + vehicles)
)
它抛出一个错误:sequelize Object [object Object] has no method 'col' 我从这个网址引用: http://sequelizejs.com/docs/latest/models#block-34-line-8
我的任何代码缺失。请帮帮我
仅供参考:忽略分号
【问题讨论】:
Vehicle.find( where: 'vsr_id': vsr_vehicle.vsr_id , 属性: ['id', 'vehicleID'],'order': 'id DESC' ).success(功能(车辆) console.log(“我得到的东西”+车辆)) 【参考方案1】:尝试使用:
Vehicle.findAll(
attributes: [Sequelize.fn('max', Sequelize.col('id'))],
raw: true,
)
查看here了解更多信息。
【讨论】:
请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。【参考方案2】:使用 sequelize.col 引用该列,sequelize 不会添加“'”,这导致了这里的问题。
【讨论】:
【参考方案3】:你可以试试,
Vehicle.max('id', where : 'vsr_id': 342 )
.success(function(vehicle_id)
...
)
.error(function(error)
...
);
【讨论】:
该函数不返回vehicle
,而是返回该车辆的id
【参考方案4】:
该查询应该可以通过:
Vehicle.findAll(
attributes: [
sequelize.fn('MAX', sequelize.col('id'))
],
where:
'vsr_id': 342
);
【讨论】:
您应该更新属性以添加别名[sequelize.fn('MAX', sequelize.col('id')), "id"]
【参考方案5】:
Rate.findAll(
where:productId:pid,
attributes:[[sequelize.fn('max', sequelize.col('rating')),'max']]
)
【讨论】:
来自审核队列:我可以请求您在源代码周围添加一些上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。以上是关于Sequelize:如何找到 Max 元素的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 Sequelize 更改列或添加新列时更新迁移文件