好吧所以我在NodeJS中有一个项目,我正在使用Sequelize进行MySQL ORM . 事情很奇妙但是我想弄清楚是否有一种方法来指定在查询的基础上返回哪些字段,或者是否有一种方法只是在某处做.query() .
例如,在我们的用户数据库中,可能存在大量的记录和列 . 在这种情况下,我只需要返回三列,这样就可以更快地获得这些列 . 但是,Sequelize只是在表中查询所有“*”以尽可能地满足完整对象模型 . 这是我想在应用程序的这个特定区域中绕过的功能 .
您必须将属性指定为传递给findAll()的对象中的属性:
Project.findAll({attributes: ['name', 'age']}).on('success', function (projects) { console.log(projects); });
我怎么发现这个:
首先在此处调用查询:https://github.com/sdepold/sequelize/blob/master/lib/model-definition.js#L131然后在这里构建:https://github.com/sdepold/sequelize/blob/master/lib/connectors/mysql/query-generator.js#L56-59
在 new 版本中试试这个
template.findAll({ where: { user_id: req.params.user_id //array }, attributes: ['id', 'template_name'], //object }).then(function (list) { res.status(200).json(list); })
2 回答
您必须将属性指定为传递给findAll()的对象中的属性:
我怎么发现这个:
首先在此处调用查询:https://github.com/sdepold/sequelize/blob/master/lib/model-definition.js#L131
然后在这里构建:https://github.com/sdepold/sequelize/blob/master/lib/connectors/mysql/query-generator.js#L56-59
在 new 版本中试试这个