Mysql Sequelize从模型中未指定的列获取数据

Mysql Sequelize从模型中未指定的列获取数据,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我在node js中使用sequelize for mysql。我有一个表,其中有20多列,但我在sequelize中为它创建了一个只有5列的模型,所以现在当我给出find all时,我在结果中只会得到这5个属性,但是当我使用findone时,在where条件下,如果我给出一个在模型中没有指定的列(在5个属性中),它仍然可以正常工作,而不是抛出错误,这是预期的场景吗 我的模型 module.exports = function (sequelize, DataTypes) { var o

我在node js中使用sequelize for mysql。我有一个表,其中有20多列,但我在sequelize中为它创建了一个只有5列的模型,所以现在当我给出find all时,我在结果中只会得到这5个属性,但是当我使用findone时,在where条件下,如果我给出一个在模型中没有指定的列(在5个属性中),它仍然可以正常工作,而不是抛出错误,这是预期的场景吗

我的模型

module.exports = function (sequelize, DataTypes) {
    var orders = sequelize.define('orders', {
        id:{
            type: DataTypes.INTEGER,
            unique: true,
            primaryKey : true
        },
        cust: DataTypes.DECIMAL(10,2),
        name: DataTypes.TEXT,
        status: DataTypes.TEXT,
        order_placed_on: DataTypes.DATE  
     },{
        freezeTableName: true,
        timestamps: false
    });

     return orders;
}; 
我通过这个查询“findOne”访问数据的函数代码


我认为它应该抛出类似“无效列名”的错误,因为模型中没有指定门户,但它的工作方式与预期一致,这是预期的行为吗?

是否启用了选项
sequelize.sync({force:true})
(注意:它将重新创建整个数据库,您将丢失数据)或“alter:true”因此,您已经创建的数据库和您现在所做的更改应该是一致的。不,我没有使用它们,因为我正在使用一个被许多人使用的公共数据库,所以我想使用相同的模式。。。
      let data = await this.model.findOne({
        where:         {
          id: "12345"
        },
        attributes : ["portal"]
      });