Mysql Sequelize从模型中未指定的列获取数据
我在node js中使用sequelize for mysql。我有一个表,其中有20多列,但我在sequelize中为它创建了一个只有5列的模型,所以现在当我给出find all时,我在结果中只会得到这5个属性,但是当我使用findone时,在where条件下,如果我给出一个在模型中没有指定的列(在5个属性中),它仍然可以正常工作,而不是抛出错误,这是预期的场景吗 我的模型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
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"]
});