为什么下面的查询会执行SELECT id, email, name FROM users AS users WHERE users.email = 'admin@admin.com';
而不是SELECT * from users WHERE email = admin@admin.com
?
http://docs.sequelizejs.com/en/latest/docs/querying/#where
文档声明当我执行findAll()时它将运行SELECT *查询,但它在我的示例中执行了不同的操作。这里缺少什么?
这是我的用户模型。
var user = sequelize.define('users', {
id : {
type : Sequelize.INTEGER,
primaryKey : true,
autoIncrement : true
},
email : {
type : Sequelize.STRING
},
name : {
type : Sequelize.STRING
}
},
{
tableName: 'users',
freezeTableName: true
});
这是我的疑问。它似乎只选择已定义的列,但我不希望这样。
var email = "admin@admin.com";
user.findAll({where: {email: email}}).then(function (user) {
res.send(user);
}).error(function (err) {
console.log("Error:" + err);
});
答案 0 :(得分:2)
这是sequelize的预期行为,仅选择您已定义的列。如果要使用sequelize选择所有列,则必须在模型中定义它们。