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

muj*_*ars 12 json node.js npm sequelize.js

我在nodejs项目中工作,sequelize用于连接mysql数据库.我也使用sequelize-values从Sequelize实例获取原始数据.

我写了下面的代码

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) {

    });
Run Code Online (Sandbox Code Playgroud)

现在该表reports只有id1200 个记录,但是result给出了两个相同记录的对象,意味着两个记录都是id 1200.

[ [ { id: 1200,
  productivity_id: 9969,
  gross_percentage_points: 100 } ],
[ { id: 1200,
  productivity_id: 9969,
  gross_percentage_points: 100 } ] ]
Run Code Online (Sandbox Code Playgroud)

让我知道我做错了什么?

Jan*_*ier 37

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

{ type: Sequelize.QueryTypes.SELECT }作为第二个参数传递将为您提供单个结果对象(省略元数据对象

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


小智 6

尝试 :

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