Sequelize:如何找到最大元素

问题描述 投票:0回答:5

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

我的本机查询是这样的。

       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

我这边缺少任何代码。请帮帮我

仅供参考:忽略分号

mysql node.js orm sequelize.js
5个回答
26
投票

你可以尝试一下吗

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

5
投票

该查询应该可以通过:

Vehicle.findAll({
  attributes: [
     sequelize.fn('MAX', sequelize.col('id'))
  ],
  where: {
    { 'vsr_id': 342 }
  }
});

4
投票

尝试使用:

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

查看此处了解更多信息。


0
投票

使用sequelize.col引用列,sequelize不会添加“'”,这导致了这里的问题。


-1
投票
 Vehicle.findAll({
    where: {},
    ....
    attributes:[[sequelize.fn('max', sequelize.col('id')),'max']]
})
© www.soinside.com 2019 - 2024. All rights reserved.