让上次犯的错反省出梦想,记一次云小程序写入数据错误

2021-06-16 18:11:11 浏览数 (1)

在开发一个云小程序做聚合统计的时候发现统计出现问题,聚合统计的语句

代码语言:javascript复制
  db.collection('Net_Log')
     .aggregate()
     .match({idk: '20210616'})
     .group({
      _id: '$meal',
      count: $.sum('$people')
     })
     .end()

由于其中的$people是字符串,所以得出的结果为0;本来以为可以通过云数据进行转换;MSSQL是可以通过字段转换CAST。但遗憾的是小程序云数据库竟然没有。。没有。。没有。。那怎么办。想到的旧数据的解决办法是通过Update通过新增一个数据段进行处理,但这样也不是办法,要从源头上进行解决。好在当时在开发的时候直接使用云函数进行写库。

代码语言:javascript复制
 const db = wx.cloud.database();
    db.collection('Net_Log').add({
      data: {
        Name: Name,
        idk: idk,
        meal: meal,
        Type: Type,
        Mobile: Mobile,
        InTime: timestamp,
        people: people//<!----这个明明是数字,但写库的时候竟然变成字段。
      },
      success: res => {
        wx.showToast({
          title: '订餐成功',
        })
        let ditem = this.data.ditem;
        ditem.push(meal   "$"   people);
        this.setData({
          ditem: ditem
        })
        wx.setStorage({
          key: "ditem",
          data: ditem
        });
        util.go_home();
      },

好吧,怎么在根源是解决呢?其实很简单,就直接在写入的时候加入Number()。。即可!

简单快捷,所以在写入数据时一定要注意数值的类型,要不真是挖坑。。

0 人点赞