2015-10-25 58 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選擇所有列,則必須在模型中定義它們。

相關問題