【发布时间】:2020-07-11 02:40:08
【问题描述】:
面临一个问题 - 是否真的可以将动态选择属性传递给 FindAll 方法?它不工作,因为它没有得到认可。
selectAttributes= "'x_name','y_name','z_name','start_z'"; //prepare this dynamically
groupBy = ['x_name','y_name','z_name','start_z','start_z']
const results = await XX.findAll({
group:groupBy,
attributes:['x_name','y_name','z_name','start_z','start_z',
[Sequelize.fn(Constants.SEQUELIZE_SUM_FUNCTION,
Sequelize.col(obj.metrics)),obj.metrics]],
where:result.where , //I have this built dynamically which works great
order: result.order,//I have this built dynamically which works great
});
//上面的代码可以正常工作并获取select中的所有列。但我想动态地传递列以及 group 和 where 和 order by;我在 where/orderby/group by 但没有选择属性方面取得了成功。我正在创建一个字符串并将其作为 select 属性传递,但它无法识别它并且只返回上面代码中的 SUM 列。
如何概括 FindALL 的 SELECT 属性?
【问题讨论】:
-
selectAttributes = ['x_name','y_name','z_name','start_z','start_z'] 和属性:[...selectAttributes, [Sequelize.fn(Constants.SEQUELIZE_SUM_FUNCTION, Sequelize .col(obj.metrics)),obj.metrics]] 不起作用?
-
选择属性是更大数组的一部分,例如 [select attributes, [ ] ];在制作这个数组时遇到了麻烦。而且我们不能在数组中单独传递选择属性
-
在更大的数组中区分选择属性与其他属性的标准是什么?
-
实际上我必须使用数组拆分,如 ...attributes,这帮助我顺利通过。这里的属性是动态构建的选择列属性数组:[...attributes, [Sequelize.fn(Constants.SEQUELIZE_SUM_FUNCTION, Sequelize.col(obj.metrics)),obj.metrics]],
标签: typescript orm sequelize.js sequelize-typescript