用Sequelizejs检索多行

我开始学习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); } }) 

这里我得到underfined,任何想法如何获得多行?

我发现,至less有两种方法可以获得所有的行:正如@ 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); } } }) 

或者在Sequelize文档的Models部分的原始查询中有这样一行有趣的内容:

有时你可能会期待一个你想要显示的大数据集,而不需要操纵。 对于您select的每一行,Sequelize创build一个DAO,并具有更新,删除,获取关联等function。如果您有成千上万的行,则可能需要一些时间。 如果你只需要原始数据而不想更新任何东西,你可以这样做来获取原始数据。

正如我想看到的原始数据,这是我们需要的,所以我们可以得到这样的多行:

 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); } }) 

希望这会帮助别人。