分页和排序

分页

使用 limit 和 offset 来控制分页数据:

  • limit 指定该请求返回的结果个数
  • offset 偏移量,指定该请求返回的结果的起始位置

默认 limit 为 20, offset 为 0,我们也可以手动指定 limit 和 offset 来控制。例如,每页展示 100 条数据,需要获取第五页的数据,将 limit 设置为 100、offset 设置为 400 即可。limit 最大可设置为 1000。

{% tabs pagingAsync=”async/await”, pagingPromise=”promise” %} {% content “pagingAsync” %}

  1. exports.main = async function paging() {
  2. try {
  3. var Product = new BaaS.TableObject(tableName)
  4. var query = new BaaS.Query()
  5. query.compare('amount', '>', 0)
  6. let res = await Product.setQuery(query).limit(10).offset(0).find()
  7. // success
  8. return res
  9. } catch(err) {
  10. // error
  11. throw err
  12. }
  13. }

{% content “pagingPromise” %}

  1. function paging() {
  2. var Product = new BaaS.TableObject(tableName)
  3. var query = new BaaS.Query()
  4. query.compare('amount', '>', 0)
  5. Product.setQuery(query).limit(10).offset(0).find().then(res => {
  6. // success
  7. callback(null, res)
  8. }).catch(err => {
  9. // error
  10. callback(err)
  11. })
  12. }

{% endtabs %}

排序

使用 orderBy 来控制使用升序或降序获取数据列表。

{% tabs sortingAsync=”async/await”, sortingPromise=”promise” %} {% content “sortingAsync” %}

  1. exports.main = async function sorting() {
  2. try {
  3. var Product = new BaaS.TableObject(tableName)
  4. var query = new BaaS.Query()
  5. query.compare('amount', '>', 0)
  6. // 升序
  7. Product.setQuery(query).orderBy('created_at').find()
  8. // or
  9. Product.setQuery(query).orderBy(['created_at']).find()
  10. // 降序
  11. Product.setQuery(query).orderBy('-created_at').find()
  12. // or
  13. Product.setQuery(query).orderBy(['-created_at']).find()
  14. // 多重排序
  15. let res = await Product.setQuery(query).orderBy(['-created_at', 'created_by']).find()
  16. // 👆先按照 created_at 降序,再按照 created_by 升序排列
  17. // success
  18. return res
  19. } catch(err) {
  20. // error
  21. throw err
  22. }
  23. }

{% content “sortingPromise” %}

  1. function sorting() {
  2. var Product = new BaaS.TableObject(tableName)
  3. var query = new BaaS.Query()
  4. query.compare('amount', '>', 0)
  5. // 升序
  6. Product.setQuery(query).orderBy('created_at').find()
  7. // or
  8. Product.setQuery(query).orderBy(['created_at']).find()
  9. // 降序
  10. Product.setQuery(query).orderBy('-created_at').find()
  11. // or
  12. Product.setQuery(query).orderBy(['-created_at']).find()
  13. // 多重排序
  14. Product.setQuery(query).orderBy(['-created_at', 'created_by']).find().then(res => {
  15. // 👆先按照 created_at 降序,再按照 created_by 升序排列
  16. callback(null, res)
  17. }).catch(err => {
  18. callback(err)
  19. })
  20. }

{% endtabs %}