我是 Node.js/Sequelize.js 的新手。我有以下查询代码:
var agent_list = models.agent.findAll({
subQuery: false,
where: qry_filter,
attributes: select_attributes,
include:include_models,
group: ['agent_id'],
order: agent_data.sort || appConfig.DEFAULT_AGENT_SORT,
limit: agent_data.num_results || appConfig.DEFAULT_RESPONSE_SIZE
})
.then(function(agent_list){
console.log(agent_list);
});
语句“console.log(agent_list)”打印从数据库检索到的数据以及元信息,如 options:{...} 、modelOptions: {...} 等。 dataValues 对象包含我想要的数据。结果集是嵌套的 js 对象,每个对象都具有相同的结构,因此很难遍历结果集并仅获取数据值。
我有使用 PHP 的经验,其中类似这样的事情
$db -> Execute("$qry") 将返回带有元数据的结果集并获取行
$db -> Execute("$qry")->getRows() 可以使用。如何在 Sequelize 中实现这一目标?
最佳答案
您可以使用一个名为 sequelize-values 的 npm 包。
所以在你的情况下,你的代码将是
models.agent.findAll({
subQuery: false,
where: qry_filter,
attributes: select_attributes,
include: include_models,
group: ['agent_id'],
order: agent_data.sort || appConfig.DEFAULT_AGENT_SORT,
limit: agent_data.num_results || appConfig.DEFAULT_RESPONSE_SIZE
}).then(function(agent_list) {
return agent_list.map(function(agent) {
return agent.getValues();
});
}).then(function(agent_list) {
console.log(agent_list);
});
关于node.js - 从查询中获取结果集,无需元信息 Sequelize,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37136986/