Sequelize“SELECT * from tablename”查询

时间:2015-10-25 03:58:48

标签: node.js sequelize.js

为什么下面的查询会执行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);
});

1 个答案:

答案 0 :(得分:2)

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