收藏
回答

云函数查询数据库排序,传排序对象会被重新按字母排序

云函数聚合操作,官方文档排序:

sort({

<字段名1>: <排序规则>,

<字段名2>: <排序规则>,

})

如果小程序传值

orderBy = {
  updateTime: -1,
  name: 1,
  age: -1
}


云函数聚合操作时.sort(event.orderBy),排序时会变成按字母排序即:

sort({
  age: -1,
  name: 1,
  updateTime: -1
})


最终返回的不是期望的排序!

回答关注问题邀请回答
收藏

4 个回答

  • 蓝斗-伴童年
    蓝斗-伴童年
    09-21

    这个问题我也遇到了,有没有大神能指导一下

    09-21
    有用
    回复
  • Cheshire cat
    Cheshire cat
    2021-08-05

    你的使用流程是

    1. 走微信客户端调云函数传参 ,里面有sort字段,是对象的形式 {two: -1, sort: -1}

    2. 云函数里接收这个参数再调用数据库聚合接口

    这个sort参数在云函数端收到的时候就可能变成 {sort: -1, two:-1}了,建议你的sort字段 按 JSON.stringify({two:-1, sort:-1})传,云函数端再JSON.parse反解来用下

    2021-08-05
    有用
    回复
  • 小树
    小树
    2021-08-05

    这个问题解决了吗?我也遇到了

    2021-08-05
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2020-12-21

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/collection/Collection.orderBy.html

    2020-12-21
    有用
    回复 5
    • ꧁꫞唐少꫞꧂
      ꧁꫞唐少꫞꧂
      2020-12-22
      问题点是对象key的排序哈 不是对象内容,对象内容没问题
      2020-12-22
      回复
    • ꧁꫞唐少꫞꧂
      ꧁꫞唐少꫞꧂
      2020-12-24
      有进展?
      2020-12-24
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2020-12-24回复꧁꫞唐少꫞꧂
      麻烦给下完整的代码,还有返回的结果显示
      2020-12-24
      回复
    • ꧁꫞唐少꫞꧂
      ꧁꫞唐少꫞꧂
      2020-12-24
      红框1是页面打印出来的顺序(预期)
      红框2是云函数打印出来的顺序(非预期)
      再要代码我就没办法了
      2020-12-24
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2020-12-25回复꧁꫞唐少꫞꧂
      json 对象 key 是无序的,参考RFC 7159
      2020-12-25
      回复
登录 后发表内容
问题标签