在开发一个云小程序做聚合统计的时候发现统计出现问题,聚合统计的语句
代码语言: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()。。即可!
简单快捷,所以在写入数据时一定要注意数值的类型,要不真是挖坑。。