Sequelize:如何找到Max元素

时间:2014-05-07 06:04:17

标签: mysql node.js orm sequelize.js

我在形成续集查询时遇到问题:

我的原生查询就是这样。

       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]没有方法' col' 我从这个网址引用:            http://sequelizejs.com/docs/latest/models#block-34-line-8

我的任何代码遗失。请帮帮我

仅供参考:忽略分号

4 个答案:

答案 0 :(得分:8)

你可以试试吗,

Vehicle.max('id', {where : {'vsr_id': 342 })
.success(function(vehicle){
   ...
})
.error(function(error){
   ...
});

答案 1 :(得分:1)

尝试使用:

Vehicle.findAll({
        attributes: [Sequelize.fn('max', Sequelize.col('id'))],
        raw: true,
    })

查看 here 了解更多信息。

答案 2 :(得分:0)

 Rate.findAll({
    where:{productId:pid},
    attributes:[[sequelize.fn('max', sequelize.col('rating')),'max']]
})

答案 3 :(得分:0)

使用sequelize.col引用该列,并且sequelize不会添加“'”,这在这里引起了问题。