【问题标题】:Sequelize Dynamic select attributes? works?Sequelize 动态选择属性?作品?
【发布时间】: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


【解决方案1】:

这可能会帮助其他希望构建动态选择属性的人。

selectAttributes= build your array here dynamically //prepare this dynamically groupBy = ['x_name','y_name','z_name','start_z','start_z']
const results = await XX.findAll({ group:groupBy,
attributes:[...selectAttributes, [Sequelize.fn(Constants.SEQUELIZE_SUM_FUNCTION, Sequelize.col(obj.tasks)),obj.tasks]], where:result.where , //I have this built dynamically which works great order: result.order,//I have this built dynamically which works great });

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 2014-07-16
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多