Sequelize“SELECT * from tablename”查询
为什么下面的查询执行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 *查询,但是在我的例子中它做了一些不同的事情。 这里缺less什么?
这是我的用户模型。
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 });
这是我的查询。 它似乎只select定义的列,但我不想要这个。
var email = "admin@admin.com"; user.findAll({where: {email: email}}).then(function (user) { res.send(user); }).error(function (err) { console.log("Error:" + err); });
这是预期的行为,只select你定义的列。 如果你想使用sequelizeselect所有的列,你必须在你的模型中定义它们。