Node.js 使用Sequelizejs检索多行

Node.js 使用Sequelizejs检索多行,node.js,sequelize.js,node-postgres,Node.js,Sequelize.js,Node Postgres,我开始学习SequelizeJs,但我遇到了一个小问题: 我有一个这样定义的模型: var ex_table= sequelize.define("ex_table", { concept1: Sequelize.STRING(5), concept2: Sequelize.STRING(80), concept3: Sequelize.STRING, weight: Sequelize.INTEGER, value: Sequelize.DECIMAL(20,2)

我开始学习SequelizeJs,但我遇到了一个小问题: 我有一个这样定义的模型:

var ex_table= sequelize.define("ex_table", {
   concept1: Sequelize.STRING(5),
   concept2: Sequelize.STRING(80),
   concept3: Sequelize.STRING,
   weight: Sequelize.INTEGER,
   value: Sequelize.DECIMAL(20,2)
}, {
   tableName: "samble_table"});
从表中检索一行是可行的,我是这样做的:

ex_table
  .find({where: Sequelize.and({weight: 320193}, {concept1: 'AGLOK'}, {concept2: 'lambda'}, {concept2: 'Industry Group'})})
  .complete(function (err, result) {
    if (!!err) {
      console.log("An error occurred while creating the table:", err);
    } else {
      console.log(result.values);
    }
  })
ex_table
  .findAll({where: Sequelize.and({weight: 320193}, {concept1: 'AGLOK'}, {concept2: 'lambda'}, {concept2: 'Industry Group'})})
  .complete(function (err, result) {
    if (!!err) {
      console.log("An error occurred while creating the table:", err);
    } else {
      console.log(result.values);
    }
  })
ex_table
  .findAll({where: Sequelize.and({weight: 320193}, {concept1: 'AGLOK'}, {concept2: 'lambda'}, {concept2: 'Industry Group'})}, {raw:true})
  .complete(function (err, result) {
    if (!!err) {
      console.log("An error occurred while creating the table:", err);
    } else {
           console.log(result);
    }
  })
这给了我一行数据,正如预期的那样。 但是,当我尝试检索多行时,如下所示:

ex_table
  .find({where: Sequelize.and({weight: 320193}, {concept1: 'AGLOK'}, {concept2: 'lambda'}, {concept2: 'Industry Group'})})
  .complete(function (err, result) {
    if (!!err) {
      console.log("An error occurred while creating the table:", err);
    } else {
      console.log(result.values);
    }
  })
ex_table
  .findAll({where: Sequelize.and({weight: 320193}, {concept1: 'AGLOK'}, {concept2: 'lambda'}, {concept2: 'Industry Group'})})
  .complete(function (err, result) {
    if (!!err) {
      console.log("An error occurred while creating the table:", err);
    } else {
      console.log(result.values);
    }
  })
ex_table
  .findAll({where: Sequelize.and({weight: 320193}, {concept1: 'AGLOK'}, {concept2: 'lambda'}, {concept2: 'Industry Group'})}, {raw:true})
  .complete(function (err, result) {
    if (!!err) {
      console.log("An error occurred while creating the table:", err);
    } else {
           console.log(result);
    }
  })

在这里,我被低估了,你知道如何获得多行吗?

我发现,至少有两种方法可以获得所有行: 正如@barry johnson所评论的,结果是一个数组,所以我们像其他数组一样遍历该数组:

ex_table
  .findAll({where: Sequelize.and({weight: 320193}, {concept1: 'AGLOK'}, {concept2: 'lambda'}, {concept2: 'Industry Group'})})
  .complete(function (err, result) {
    if (!!err) {
      console.log("An error occurred while creating the table:", err);
    } else {
      for (var i=0; i<result.length; i++) {
           console.log(result[i].values);
           }
    }
  })

希望这也能帮助其他人。

findAll
案例中,
result
不是数组吗?@barry johnson确实是数组,我很困惑,因为我认为我必须对result.rows或result.values做些什么,我找到了解决方案,我将回答我自己的问题。