为什么下面的查询执行SELECT id, email, name FROM users AS users WHERE users.email = '[email protected]';
而不是SELECT * from users WHERE email = [email protected]
?
http://docs.sequelizejs.com/zh-CN/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 = "[email protected]";
user.findAll({where: {email: email}}).then(function (user) {
res.send(user);
}).error(function (err) {
console.log("Error:" + err);
});
这是仅选择已定义列的续集的预期行为。如果要使用sequelize选择所有列,则必须在模型中定义它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句