Упорядочить атрибуты динамического выбора? работает?

столкнулся с одной проблемой, например, действительно ли можно передать атрибуты динамического выбора методу 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. но я хотел динамически передавать столбцы вместе с группой и где и упорядочивать; У меня был успех с where/orderby/group by, но не с атрибутами select. Я создавал строку и передавал ее как атрибут выбора, но не распознавал ее и возвращал только столбец SUM в приведенном выше коде.

Как я могу обобщить атрибуты SELECT для FindALL?


person user3264937    schedule 30.03.2020    source источник
comment
selectAttributes = ['x_name','y_name','z_name','start_z','start_z'] и атрибуты: [...selectAttributes, [Sequelize.fn(Constants.SEQUELIZE_SUM_FUNCTION, Sequelize.col(obj.metrics)) ,obj.metrics]] не работает?   -  person Anatoly    schedule 30.03.2020
comment
атрибуты выбора являются частью большего массива, такого как [выбрать атрибуты, [ ] ]; возникли проблемы с созданием этого массива. и мы не можем передать только атрибуты select в массиве   -  person user3264937    schedule 31.03.2020
comment
и каков критерий отличия выбранных атрибутов от других в большем массиве?   -  person Anatoly    schedule 31.03.2020
comment
На самом деле мне пришлось использовать разделение массива, например... атрибуты, и это помогло мне пройти через это. здесь атрибуты - это динамически созданный массив атрибутов выбранных столбцов: [... атрибуты, [Sequelize.fn (Constants.SEQUELIZE_SUM_FUNCTION, Sequelize.col (obj.metrics)), obj.metrics]],   -  person user3264937    schedule 01.04.2020


Ответы (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 });

person user3264937    schedule 01.04.2020