Knex.js多个orderBy()列

有可能做多个orderBy()列吗?

knex .select() .table('products') .orderBy('id', 'asc') 

orderBy()可链接只需要一个列键和一个sorting值,但是我怎样才能按多列sorting呢?

您可以多次调用.orderBy来按多列sorting:

 knex .select() .table('products') .orderBy('name', 'desc') .orderBy('id', 'asc') 

原来的答案在技术上是正确的,也是有用的,但是我的目的是find一种方法来多次编程应用orderBy()函数,下面是我参考的实际解决scheme:

 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提供了一个允许queryBuilder直接运行的修改函数。 数组迭代器然后多次调用orderBy()