Tratando de usar el método secuencial findAndCountAll para obtener elementos. Tengo que usar distinto y compensar con límite debido a mi tarea.
El problema es que en el modelo asociado tengo una columna con tipo de matriz, y necesito ordenar el modelo principal por esa longitud de matriz.
Mi consulta se parece a:
const { rows, count } = await this.repo.findAndCountAll({ where: { someField: someValue }, col: 'someCol', distinct: true, include: [ { model: someNestedModel, as: 'someNestedModelAssociation', include: [{ model: someInnerNestedModel, as: 'someInnerNestedAssociation' }] } ], // eslint-disable-next-line @typescript-eslint/ban-ts-comment //@ts-ignore order: this.getOrderByOptions(sortOrder, orderBy), limit, offset }); getOrderByOptions(sortOrder, orderBy) { switch (orderBy) { case Sort_By_Array_Length: return Sequelize.literal('json_array_length(someModelName.someColumnWithArrayName) ASC'); default: return [[orderBy, sortOrder]]; } }El problema es que mi pedido por consulta se usa tanto en subQuery como en mainQuery. Y usarlo en subQuery conduce a un error, porque no existe tal campo.
Si uso subQuery:false flag, funciona, pero luego me compliqué con la devolución de resultados, debido a problemas con subQuery:false y offset&limits.
Entonces, la pregunta es, ¿hay alguna manera de excluir el campo orderBy de la subconsulta?
Los modelos PS tienen muchas o muchas asociaciones con la tabla pasante.