使用 Sequelize (NodeJS) 而不是 * 指定特定字段

本教程将介绍使用 Sequelize (NodeJS) 而不是 * 指定特定字段的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

使用 Sequelize (NodeJS) 而不是 * 指定特定字段 教程 第1张

问题描述

好的,所以我在 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

好了关于使用 Sequelize (NodeJS) 而不是 * 指定特定字段的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。