Указание конкретных полей с помощью Sequelize (NodeJS) вместо *

Хорошо, у меня есть проект на NodeJS, где я использую Sequelize для MySQL ORM. Вещь работает фантастически, однако я пытаюсь выяснить, есть ли способ указать, какие поля возвращаются на основе запроса, или есть даже способ просто сделать где-нибудь .query ().

Например, в нашей базе данных пользователей может быть смехотворное количество записей и столбцов. В этом случае мне нужно вернуть только три столбца, чтобы было быстрее получить только эти столбцы. Однако Sequelize просто запрашивает в таблице все "*", чтобы максимально выполнить полную объектную модель. Это функция, которую я хотел бы обойти в этой конкретной области приложения.

38
задан Aric 7 November 2011 в 17:08
поделиться

1 ответ

Используйте массивы в ключе атрибута. Можно сделать вложенные массивы для псевдонимов.

Project.findAll({
  attributes: ['id', ['name', 'project_name']],
  where: {id: req.params.id}
})
.then(function(projects) {
  res.json(projects);
})

уступит:

SELECT id, name AS project_name FROM projects WHERE id = ...;
1
ответ дан 27 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: