sequelize.query()返回两次相同的结果

sequelize.query()返回两次相同的结果

问题描述:

我正在使用sequelize连接mysql数据库的nodejs项目中工作。我也使用sequelize-values从Sequelize实例获取原始数据。sequelize.query()返回两次相同的结果

我已经写了下面的代码

var Sequelize = require('sequelize'); 
require('sequelize-values')(Sequelize); 
var sequelizeObj = new Sequelize('mysql://root:@localhost/database'); 

sequelizeObj.authenticate().then(function (errors) { 
    console.log(errors) 
}); 

sequelizeObj.query("SELECT * FROM `reports` WHERE `id` = 1200").then(function (result) { 

    }); 

现在表reportsid 1200只1分的记录,但result给出了相同的记录的两个对象,既指记录是同一个ID为1200

[ [ { id: 1200, 
    productivity_id: 9969, 
    gross_percentage_points: 100 } ], 
[ { id: 1200, 
    productivity_id: 9969, 
    gross_percentage_points: 100 } ] ] 

让我知道我在做什么错了?

第一个对象是结果对象,第二个是元数据对象(包含受影响的行等) - 但在mysql中,这两个是相等的。

传递{ type: Sequelize.QueryTypes.SELECT }作为第二个参数会给你一个结果对象(元数据对象省略

https://github.com/sequelize/sequelize/wiki/Upgrading-to-2.0#changes-to-raw-query

+0

完美的点答案:) – mujaffars

尝试:

sequelizeObj.query("SELECT * FROM `reports` WHERE `id` = 1200", { type: Sequelize.QueryTypes.SELECT }).then(function (result) { 
    }); 

最好的问候, 多纳