Sequelize limit и order не работают с условным запросом - PullRequest
0 голосов
/ 28 мая 2018

Я создаю условный запрос ORM

let defaultWhere ={
        isPublic:1
      };

     //query to build
     let  query = {    
       distinct:true,  
       include:[
        {
            model:DealsMeta,
            where:{
                type:'view'
            },
            as: "totalviews",
            attributes: ['id'],
            required:false,
        },
        {
            model:DealsTransactions,
            as: "totaltransactions",
            attributes: ['id'],
            required:false
        }
       ] 
     };
    let keywordWhere = {};

    //add the search parameter
    if(params.keyword!=undefined&&params.keyword!=""){
        keywordWhere = {
            [Op.or]:[
                {title: { $like: '%' + params.keyword + '%' }},
                {keywords: { $like: '%' + params.keyword + '%' }},
                Sequelize.where(Sequelize.fn('concat_ws', Sequelize.col('firstName'), ' ', Sequelize.col('lastName')), {
                    $like: '%' + params.keyword + '%'
                    })
            ]
        };
        query.include=query.include.concat({ model:User, required:false,attributes:['firstName'] }) 
    }
    query.where=Object.assign(defaultWhere,keywordWhere);

, но когда я добавляю limit и offset запрос прерывается, я получаю неизвестную ошибку столбца

т.е.

{    
       distinct:true,
       offset:0,
       limit:2
  }

Возвращает неработающий запрос

ОБНОВЛЕНИЕ

Окончательный запрос

{ distinct: true,
  order: [ [ 'idDeal', 'DESC' ] ],
  limit: 2,
  offset: 0,
  include: 
   [ { model: deals_metadata,
       where: [Object],
       as: 'totalviews',
       attributes: [Array],
       required: false },
     { model: deals_transactions,
       as: 'totaltransactions',
       attributes: [Array],
       required: false },
     { model: USER, required: false, attributes: [Array] } ],
  where: { isPublic: 1, [Symbol(or)]: [ [Object], [Object], [Where] ] } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...