2015-10-25 60 views
1

为什么下面的查询执行SELECT id, email, name FROM users AS users WHERE users.email = '[email protected]';而不是SELECT * from users WHERE email = [email protected]Sequelize“SELECT * from tablename”查询

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 = "[email protected]"; 
user.findAll({where: {email: email}}).then(function (user) { 
    res.send(user); 

}).error(function (err) { 
    console.log("Error:" + err); 
}); 

回答

2

这是仅选择已定义列的预期行为。如果要使用sequelize选择所有列,则必须在模型中定义它们。

相关问题