Nitish Phanse
Nitish Phanse

Reputation: 562

clearSelect is not a function knex select query

I am using knex and bookshelf to perform queries with multiple where clauses. I have a filtered list with a limit and an offset and i need a total of all results without the limit offset. I am trying to use clearSelect but i keep getting an error saying clearSelect is not a function.

My code

DoctorPayor
    .query((qb) => {

      qb.innerJoin('doctors', (joinTable) => {
        joinTable.on('doctors_payors.doctor_id', '=', 'doctors.id')
        .onNull('doctors_payors.deleted_at')
      })
    .innerJoin('practices', (joinTable) => {
      joinTable.on('practices.id', '=', 'doctors.practice_id')
      .onNull('practices.deleted_at')
      })
    .where('doctors_payors.onboarded_status', '=', requestParams.status)
    .where('doctors_payors.payor_id', '=', payorId)
    .where('practices.deleted_at', 'IS', null);
    if(requestParams.speciality)
      qb.where('doctors.speciality', '=', requestParams.speciality);

    if(requestParams.locality)
      qb.where('practices.location', '=', requestParams.locality);

    if(requestParams.city)
      qb.where('practices.city', '=', requestParams.city);

    if(requestParams.score_min)
      qb.where('doctors.recommendation_score', '>', requestParams.score_min);

    if(requestParams.score_max)
      qb.where('doctors.recommendation_score', '<', requestParams.score_max);

    if(requestParams.consultation_min)
      qb.where('doctors.consultation_fee', '>', requestParams.consultation_min);
    if(requestParams.consultation_max)
      qb.where('doctors.consultation_fee', '<', requestParams.consultation_max);

    if(requestParams.doctor_name)
      qb.where('doctors.name', 'like', '%' + requestParams.doctor_name + '%');

    if(requestParams.practice_name)
      qb.where('practices.name', 'like', '%' + req.query.practice_name + '%');

    qb.limit(limit).offset(offset)

    qb.select(
    )
    .then((response) => {
      let responseObj = {};
      responseObj.doctorsList = responseObj;
      qb.clearSelect()  /// <-- error is thrown here
      qb.count('* as doctor_count')
      .then((countResponse) => console.log(countResponse))
      resolve(response)
    })
    .catch((error) => reject(error))
    });

Can someone tell me what im doing wrong will be of great help. Thanks

Upvotes: 0

Views: 787

Answers (1)

Mikael Lepist&#246;
Mikael Lepist&#246;

Reputation: 19718

This feature came in release 0.12.8 http://knexjs.org/#changelog

  • Added clearSelect and clearWhere to query builder #1912

Upvotes: 1

Related Questions