📜  sequelize 只得到一列 - Javascript (1)

📅  最后修改于: 2023-12-03 15:20:06.092000             🧑  作者: Mango

使用 Sequelize 只得到一列

Sequelize 是一个 Node.js 的 ORM 框架,它使得对关系型数据库的操作更加简单、方便。在使用 Sequelize 时,有时候只需要得到一个表中的某一列,本文将介绍如何在 Sequelize 中只得到一列的方法。

使用 SELECT 操作

使用 SELECT 操作可以得到表中的指定列数据。在 Sequelize 中,可以通过以下方法实现 SELECT 操作:

Model.findAll({
  attributes: ['column1', 'column2', ...]
});

其中,Model 表示数据表模型,在本例中需要替换为你自己的模型。attributes 数组表示要查询的列,可以填写多个列名。

例如,如果要查询 user 表中的 name 列数据,可以这样操作:

const User = require('./models/user');

User.findAll({
  attributes: ['name']
}).then(users => {
  console.log(users);
});

这将只得到 user 表中的 name 列数据,输出结果类似于:

[ { name: 'Tom' }, { name: 'John' }, { name: 'Mary' } ]
使用 RAW 查询

另一种方法是使用 RAW 查询。在 Sequelize 中,可以通过 sequelize.query() 方法执行 RAW 查询。以下是一个例子:

const { Op } = require('sequelize');
const User = require('./models/user');

User.sequelize.query('SELECT name FROM user', {
  type: User.sequelize.QueryTypes.SELECT
}).then(users => {
  console.log(users);
});

这将返回 user 表中的 name 列数据,输出结果类似于:

[ { name: 'Tom' }, { name: 'John' }, { name: 'Mary' } ]

需要注意的是,在 RAW 查询中需要使用表名,而非模型名称。

总结

使用 Sequelize 只得到一列数据可以通过 SELECT 操作或 RAW 查询实现。我们可以根据具体的需求来选择使用哪种方法。