La risposta originale è tecnicamente corretta, e utile, ma la mia intenzione era quella di trovare un modo per applicare programatically le più volte orderBy()
funzione, qui è la soluzione reale sono andato con riferimento:
var sortArray = [
{'field': 'title', 'direction': 'asc'},
{'field': 'id', 'direction': 'desc'}
];
knex
.select()
.table('products')
.modify(function(queryBuilder) {
_.each(sortArray, function(sort) {
queryBuilder.orderBy(sort.field, sort.direction);
});
})
Knex offre una funzione di modifica che consente QueryBuilder da operare direttamente. Un iteratore di array chiama quindi orderBy()
più volte.
fonte
2016-04-04 13:21:00
Non sono sicuro che ci sia una funzione speciale per questo, ma puoi fare un 'orderByRaw' e scrivere quello che ti serve –
@VsevolodGoloviznin Speravo di non doverlo fare, ma è la mia ultima risorsa. –